MYSQL:选择列中包含更多字符串的行?

MYSQL:选择列中包含更多字符串的行?,mysql,Mysql,在我的表格中,我有以下情况: +-------+---------------+--------------+----------+ | ID | CODE | VALUE | Etc... | +-------+---------------+--------------+----------+ | 1 | 10a10a | a1, b1, a2, | | | | | c

在我的表格中,我有以下情况:

+-------+---------------+--------------+----------+
|  ID   |     CODE      |    VALUE     |   Etc... |
+-------+---------------+--------------+----------+
|   1   |    10a10a     | a1, b1, a2,  |          |
|       |               | c1, c5, e7   |          |
+-------+---------------+--------------+----------+
|   2   |    15cef1     | b1, n6, p1,  |          |
|       |               | y3, e7, d9   |          |
+-------+---------------+--------------+----------+
|                                                 |
|                    Etc....                      |
当我运行以下查询时:

 SELECT * FROM code WHERE value IN ('10a10a') AND facilities LIKE ('%b1%')
我定期收到服务器的响应。但是,使用(“%b1%”、“%c5%”)等
工具执行查询时,服务器不会返回任何结果


在同一列中搜索多个值的正确方法是什么?

您可以使用单独的
子句查询该值

从('10a10a')中的值所在的代码中选择*和(类似于('%b1%')的设施或类似于('%c5%')的设施)

注意被额外括号包围的OR语句的分组


但是,如果需要在“Value”列中进行查询,则在“Value”列中存储多个类似的值,这可能意味着应该将Value列标准化并移动到它自己的单独表中,然后可以使用
JOIN
语句进行查询,并且使用
LIKE
操作符不需要通配符模式的开销。

在LIKE中查找2个值时,需要使用or:

 WHERE facilities LIKE '1b1%' OR facilities LIKE '%c5%'
正确的方法是从一开始就对其进行适当的规范化。“但是,使用(“%b1%”、“%c5%”等工具执行查询时,服务器不会返回任何结果”-我真的不明白人们是如何在这种情况下发明自己的幻想语法的,然后想知道为什么它“不起作用”。。。你有没有读过任何可以像那样使用的书…?您希望使用AND或or将两个类似于单个的比较连接在一起。