繁体   English   中英

Select * From Table Where Name in like(通配符)

[英]Select * From Table Where Name in like (wildcards)

是否可以组合 SQL 语句,例如

SELECT * FROM X WHERE Y LIKE '%a%' OR Y LIKE '%b%' OR Y LIKE '%c%' OR Y LIKE '%d%'

SELECT * FROM X WHERE Y IN ('a', 'b', 'c', 'd')

所以我不必像现在这样写一个大声明:

IF NOT EXISTS(SELECT * FROM X WHERE Y LIKE '%a%' OR Y LIKE '%b%' OR Y LIKE '%c%' OR Y LIKE '%d%')
    BEGIN
        /* code */
    END

使用像SELECT * FROM X WHERE Y IN LIKE ('%a%', '%b%', etc..)这样的东西会非常好SELECT * FROM X WHERE Y IN LIKE ('%a%', '%b%', etc..)感谢所有帮助和建议,谢谢。

请使用以下代码解决您的问题,如果仍有问题,请尝试让我知道。

SELECT * FROM X WHERE Y LIKE '%[a-d]%'

如果您的数据库支持 RegEx,则可以使用它。 例如:

SELECT * FROM X WHERE Y SIMILAR TO '%(a|b|c|d)%'在 PostgreSQL 中,和

SELECT * FROM X WHERE Y REGEXP 'a|b|c|d'在 MySQL 中。

LIKE '%[ad]%'将无法工作,因为LIKE S IN大多数数据库不接受正则表达式模式。 这将只期望字符串中某处的文字文本[ad] 每个数据库如何解释正则表达式(或本机模式)有很大差异。 所以你需要根据你的数据库定制这些东西。 例如,以下内容在 PostgreSQL 中不起作用

SELECT * FROM X WHERE Y SIMILAR TO 'a|b|c|d'

因为 PostgreSQL 会期望整个字符串为 'a'、'b'、'c' 或 'd'。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM