【问题标题】:Filter the entries shown upon SELECT in MariaDB过滤 MariaDB 中 SELECT 时显示的条目
【发布时间】:2019-01-24 13:10:26
【问题描述】:

我在某个 mariadb 表中有条目,其值在名为 code 的列中,例如:

ABC-SI-GR-0
ABC-SI-NAV-0
ABC-GO-NAV-0
ABC-SI-NAV-3P
ABC-GO-GR-0
ABC-GO-GR-3P
...

...等等

现在我想从该表中选择所有具有SI 作为code 列中字符串的一部分的条目。我试过了

SELECT * WHERE code LIKE %SI% FROM [table]

这不起作用。

查看与您的 MariaDB 服务器版本相对应的手册,了解在“WHERE code LIKE %SI% FROM [table]”附近使用的正确语法第 1 行

谁能指出一种更成功的语法?

【问题讨论】:

    标签: mariadb


    【解决方案1】:

    您的 like 子句周围缺少引号。将您的选择更改为:

    SELECT * FROM [table] WHERE code LIKE '%SI%'
    

    【讨论】:

    • 此外,使用rlike 而不是like 会更快,因为它使用的是正则表达式与通配符。 select * where code rlike 'SI' from tablename
    • 可能,但rlike 不是多字节安全的,可能会导致其他问题。
    • 感谢指针@Dave。不幸的是,添加引号(任何类型。尝试过“...”,'...',`...`)会导致与以前相同的错误。 LIKE 或 RLIKE 在这方面没有区别。还有其他想法吗?
    • 请用您现在使用的确切陈述和您得到的完整错误修改您的问题。
    • SELECT * FROM [table] WHERE code LIKE '%SI%' 可以工作
    猜你喜欢
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多