考虑这个数据库表:
| id | name | city |
+----+------+-----------+
| 10 | test | anza |
| 11 | fish | riverside |
我想找到城市名称包含在字符串中的项目,如:
anza city
河畔县
如何使用MySQL查找我的字符串中包含城市名称的项目?换句话说,哪些城市包含在字符串'anza city'中?这应该返回id 10。
似乎与MySQL中的LIKE相反。
答案 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答案!我希望它可以帮到你。