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



在我的桌子中,我有这种情况:

+-------+---------------+--------------+----------+
|  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%')

我定期从服务器获得响应。但是,使用facilities LIKE ('%b1%', '%c5%')执行查询服务器没有返回结果。

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

您可以使用单独的OR子句查询。

SELECT * FROM code WHERE value IN ('10a10a') AND (facilities LIKE ('%b1%') OR facilities LIKE ('%c5%'))

请注意,由多余的支架包围的或语句的分组。

但是,如果您需要查询"值"列中的多个值,则可能意味着应将值列并将其移至其自己的单独表格,然后可以使用JOIN语句查询,然后没有使用LIKE操作员的通配符模式的开销。

您需要使用或查找2个值时:

 WHERE facilities LIKE '1b1%' OR facilities LIKE '%c5%'

最新更新