Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何从多个id的字符串中按id选择行_Mysql - Fatal编程技术网

Mysql 如何从多个id的字符串中按id选择行

Mysql 如何从多个id的字符串中按id选择行,mysql,Mysql,每行有多个ID,用逗号分隔。我想按id选择行 数据库如下所示: R.No | User_Ids -----|--------- 1 | 38,323,45 -----|---------- 2 | 382,535,338 -----|------------ 3 | 32,38 -----|---------- 4 |238,388,2394 如果所选id为38,则我需要以下结果: R.No | User_Ids -----|--------- 1 | 38,32

每行有多个ID,用逗号分隔。我想按id选择行

数据库如下所示:

R.No | User_Ids
-----|---------
1    | 38,323,45
-----|----------
2    | 382,535,338
-----|------------
3    | 32,38
-----|----------
4    |238,388,2394
如果所选id为38,则我需要以下结果:

R.No | User_Ids
-----|---------
1    | 38,323,45
-----|----------
3    | 32,38
我使用了这个查询

$sql="select User_Ids from table_name where User_Ids RLIKE '[[:<:]]".$Id."[[:>:]]'";
$sql=“从用户ID类似于“[[::]]”的表“名称”中选择用户ID”;

它将错误作为正则表达式的非法参数。

您可以使用以下函数获得所需的结果:

SELECT * FROM test WHERE find_in_set(38, `Ids`);

现在您知道为什么将链接键放在逗号分隔的列表中是疯狂的了。如果还不太晚,请查看“初学者数据库设计”课程,然后在此表和用户表之间创建一个链接表(上面提到的副本解释了如何做到这一点,但这并没有改变一个事实,即如果在这一点上仍然有可能的话,这可能更应该被适当地规范化。)