我的桌面结构为休闲
+----+------+---------+---------+
| id | name | heading | catid |
+----+------+---------+---------+
| 1 | ajay | xyz | 1:25:22 |
| 2 |sanjay| abc |15:25:45 |
+----+------+---------+---------+
如果我得到条件catid = 22则获得结果
+---+-----+----+---------+
| 1 | ajay| xyz| 1:25:22 |
+---+-----+----+---------+
如果我得到条件catid = 15则获得结果
+---+-----+----+----------+
| 2 | sanjay| abc|15:25:45|
+---+-----+----+----------+
如果条件catid = 25则获得结果
+---+-----+----+----------+
| 1 | ajay| xyz| 1:25:22 |
+---+-----+----+----------+
| 2 | sanjay| abc|15:25:45|
+---+-----+----+----------+
答案 0 :(得分:3)
使用逗号替换FIND_IN_SET
中的冒号后,您可以使用catid
:
SELECT *
FROM yourTable
WHERE FIND_IN_SET('25', REPLACE(catid, ':', ',')) > 0;
但是,长期的良好投资是规范化catid
数据并将这些ID分别记录在其中。
还有一种方法可以使用LIKE
运算符执行此操作,但这很难看:
SELECT *
FROM yourTable
WHERE CONCAT(':', catid, ':') LIKE '%:25:%';