我有一个表名myTable,其行如下:
*--------------------------------------------*
| S.No. | user_id | Event Name | Event Date |
*--------------------------------------------*
| 101 | 9,19 | Juniorun | 25-June-19 |
*--------------------------------------------*
| 102 | 9,20 | Juniorun1 | 30-June-19 |
*--------------------------------------------*
| 103 | 9,21 | Juniorun2 | 27-June-19 |
*--------------------------------------------*
| 104 | 9,18,19 | Juniorun3 | 26-June-19 |
*--------------------------------------------*
现在我的用户ID为19,然后,我要选择用户ID为19的行。
我想要:
*--------------------------------------------*
| S.No. | user_id | Event Name | Event Date |
*--------------------------------------------*
| 101 | 9,19 | Juniorun | 25-June-19 |
*--------------------------------------------*
| 104 | 9,18,19 | Juniorun3 | 26-June-19 |
*--------------------------------------------*
为此,我使用以下查询:
SELECT * FROM myTable WHERE user_id IN ('19');
但是我的查询没有任何值。它显示为空白。
答案 0 :(得分:1)
鉴于user_id以字符串形式存储,您可以使用LIKE
运算符(不推荐)
SELECT *
FROM myTable
WHERE user_id LIKE '%19%';
或者在WHERE子句中使用FIND_IN_SET
,
SELECT *
FROM myTable
WHERE FIND_IN_SET('19', user_id) > 0;
答案 1 :(得分:0)
使用FIND_IN_SET()
,可以达到预期的效果:
SELECT *
FROM myTable
WHERE FIND_IN_SET('19', user_id);
答案 2 :(得分:0)
尝试FIND_IN_SET
SELECT * FROM myTable WHERE FIND_IN_SET(19,user_id)
答案 3 :(得分:0)
FIND_IN_SET()函数返回字符串在字符串列表中的位置。 FIND_IN_SET(字符串,字符串列表) 参数说明 字符串必需。要搜索的字符串 string_list必需。要搜索的字符串值列表(以逗号分隔) 然后您的SQL将是
SELECT * FROM myTable WHERE FIND_IN_SET(19,user_id)