【问题标题】:Whats the MySQL equivalent of this SQLite code?这个 SQLite 代码的 MySQL 等价物是什么?
【发布时间】:2013-01-04 23:31:36
【问题描述】:
"SELECT DISTINCT `Name` FROM ( SELECT * FROM `Aliases` WHERE ( `IP` GLOB 'ENTERED_NAME' ) ORDER BY `Datetime` DESC )"

基本上试图获取链接到与“ENTERED_NAME”相同的 IP 地址的所有名称。

是否有与“GLOB”等效的 MySQL ?

【问题讨论】:

  • 'IP' = 'ENTERED_NAME'?其中IP 等于ENTERED_NAME?这样就可以了。
  • SQLite 中的LIKEGLOB 运算符在此处描述:sqlite.org/lang_expr.html

标签: mysql sqlite glob


【解决方案1】:

GLOB 使用通配符,例如GLOB 'Foo*' 来匹配以Foo 开头的任何内容。 Mysql 不支持此功能,但您可以将字符串转换为使用LIKE,如下所示:

WHERE IP LIKE BINARY REPLACE('ENTERED_NAME', '*', '%') -- replace * with %

【讨论】:

  • 其实GLOBLIKE的区别不就是GLOB区分大小写吗?
  • @LMD 相当 - 我已经编辑了答案以执行 case sensitive like
【解决方案2】:
SELECT DISTINCT `Name` FROM (
    SELECT * FROM `Aliases` WHERE ( `IP` LIKE '%[entered_name]%' ) ORDER BY `Datetime` DESC
)

...或...

SELECT DISTINCT `Name` FROM (
    SELECT * FROM `Aliases` WHERE ( `IP` = '[entered_name]' ) ORDER BY `Datetime` DESC
)

...[entered_name] 相应地发生变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 2019-02-12
    • 2021-06-15
    • 1970-01-01
    相关资源
    最近更新 更多