搜索列值在字符串

时间:2015-04-30 17:10:16

标签: mysql sql

考虑这个数据库表:

| id | name |    city   |
+----+------+-----------+
| 10 | test | anza      |
| 11 | fish | riverside |

我想找到城市名称包含在字符串中的项目,如:

  

anza city

     

河畔县

如何使用MySQL查找我的字符串中包含城市名称的项目?换句话说,哪些城市包含在字符串'anza city'中?这应该返回id 10。

似乎与MySQL中的LIKE相反。

1 个答案:

答案 0 :(得分:1)

这与LIKE不同。我想你觉得这种方式的原因是因为你习惯于看到这样的东西:

WHERE columnName LIKE 'someString';

但是,你仍然可以使用它,但你需要在列上使用一些操作。如果要检查列名是否在字符串中,只需在正面和背面添加通配符,并以这种方式使用LIKE

SELECT *
FROM myTable
WHERE 'anza city' LIKE CONCAT('%', city, '%');

请注意,外卡的值将位于右侧。如果您说CONCAT('%', city, '%') LIKE 'anza city'将不会返回任何内容。

以下是SQL Fiddle示例。

修改

以下是有关搜索substring的更多信息。

有趣的是,这是我的第300次Stack Overflow答案!我希望它可以帮到你。