如何缩短SQL LIKE语句

时间:2019-12-06 11:23:25

标签: sql

如何缩短以下sql查询(我返回以“ mycolumn”列中的四个不同字符串之一开头的行):

select * from mytable where mycolumn LIKE 'xyz%' 
OR mycolumn LIKE 'abc%' 
OR mycolumn LIKE 'def%' 
OR mycolumn LIKE 'gth%' 

J。

2 个答案:

答案 0 :(得分:4)

您有一些选择,尽管从性能的角度来看,没有一个是好的选择。如果所有前缀的长度都相同,则:

where left(column, 3) in ('xyz', 'abc', 'def', 'ghi')

如果您使用的数据库支持正则表达式:

where column ~ '^(xyz|abc|def|ghi)'

在这种情况下,~是用于正则表达式匹配的Postgres语法。

答案 1 :(得分:0)

如果您的数据库支持正则表达式,则可以使用以下代码:

select * from mytable where mycolumn ~ '^(xyz|abc|def|gth)'

学习Regex绝对值得考虑,如果您的数据库支持它,尽管我认为影响性能并不理想,所以如果您的查询要依赖大量字符串,建议使用它。