如何缩短SQL LIKE语句

24 浏览
0 Comments

如何缩短SQL LIKE语句

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

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

J.

0
0 Comments

问题:如何缩短SQL LIKE语句?

原因:SQL LIKE语句在处理大量字符串时可能会影响性能,因此需要寻找一种更有效的方法来缩短SQL LIKE语句。

解决方法:如果数据库支持正则表达式(Regex),可以使用以下代码来实现:

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

但需要注意的是,尽管学习正则表达式值得考虑,但对性能可能会有一定的影响,因此仅建议在查询依赖大量字符串时使用。

0
0 Comments

问题的原因是在使用SQL的LIKE语句时,性能较低。解决方法有几种选项,但从性能的角度来看,都不是很好。如果所有的前缀长度相同,可以使用LEFT函数来实现:

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

如果使用支持正则表达式的数据库,可以使用正则表达式来实现:

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

在这种情况下,~是Postgres中用于正则表达式匹配的语法。另外,还某些情况下使用类似SUBSTRING的语句时也遇到了性能下降的问题。

0