Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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 用于查找字符串和下一个字符的正则表达式不应为数字_Mysql_Sql_Regex_Where Clause - Fatal编程技术网

Mysql 用于查找字符串和下一个字符的正则表达式不应为数字

Mysql 用于查找字符串和下一个字符的正则表达式不应为数字,mysql,sql,regex,where-clause,Mysql,Sql,Regex,Where Clause,我有一个mysql表,其中一列中另一个表的ID存储为逗号分隔的值 例如 id | name | jobid ---+------+--------- 1 | AA | 12 2 | BB | 3 | CC | 12,124 4 | DD | 11,124,46 在这里,可以看到列jobid可能为空,或者包含一个或多个用逗号分隔的id 现在我需要获取具有特定jobid的行。如果搜索jobid12,它应该返回第1行和第3行 我不能使用WHERE LIKE,因为您可以看到,

我有一个mysql表,其中一列中另一个表的ID存储为逗号分隔的值

例如

id | name | jobid
---+------+---------
 1 | AA   | 12
 2 | BB   | 
 3 | CC   | 12,124
 4 | DD   | 11,124,46
在这里,可以看到列jobid可能为空,或者包含一个或多个用逗号分隔的id

现在我需要获取具有特定jobid的行。如果搜索jobid12,它应该返回第1行和第3行

我不能使用
WHERE LIKE
,因为您可以看到,如果我搜索jobid
12
,它将生成第1、3和4行

所以我的结论是使用正则表达式来搜索id,下一个或上一个字符不应该是数字。但我一点也不擅长正则表达式,我尝试了很多方法在网上搜索,但都没有成功

我认为我的逻辑是正确的,如果不是,请建议我解决这个问题的最佳方法


注意。由于某些原因,我无法更改存储Jobid的方式。

在MySQL中,您可以简单地使用它。它的目的是在逗号分隔的列表中搜索一个值(据我所知,这就是您要查找的内容)

select * from mytable where find_in_set(12, jobid);