是否有像LIKE这样的SQL运算符,但不需要周围的百分号?

时间:2019-07-25 17:30:19

标签: mysql sql

我有80%的时间在SQL中使用LIKE,如下所示:

SELECT * FROM mytable WHERE field LIKE "%foo%"

有什么我可以做的操作员

SELECT * FROM mytable WHERE field CONTAINS "foo"

我正在使用MySQL。

2 个答案:

答案 0 :(得分:2)

如果您正在寻找替代品,请不要忘记以下内容:

SELECT * FROM mytable WHERE field RLIKE "foo";

尽管RLIKE将文本视为正则表达式,所以?*之类的字符具有特殊的含义。

您还可以使用full-text indexes and their corresponding functions搜索:

SELECT * FROM mytable WHERE MATCH (field) AGAINST "foo";

全文索引的性能比进行任何类型的子字符串搜索要快得多。子字符串LIKE需要进行痛苦的表扫描。

答案 1 :(得分:1)

还有LOCATE您可以使用

SELECT * FROM mytable WHERE LOCATE('foo',field) > 1