为什么这个MySQL查询只返回1个结果?

dra*_*dom 2 php mysql sql

语法合适吗?

SELECT * 
  FROM productOptions 
 WHERE productOptionsID IN ('1,2,3,4')
Run Code Online (Sandbox Code Playgroud)

我是否正确使用了IN,或者逗号分隔值是否应该不同?

接下来是以下代码:

$optionsresultsql= mysql_query($optionsquerysql) or die(mysql_error());

while($optionssql = mysql_fetch_array($optionsresultsql)) {
  $optionNamesID = $optionssql["optionNamesID"];
  echo $optionNamesID;
}   
Run Code Online (Sandbox Code Playgroud)

即使DB中有4个匹配项,也只显示一个结果.

Fat*_*orm 9

处理INT查找时删除单一滴答.

"SELECT * FROM productOptions WHERE productOptionsID IN (1,2,3,4)"
Run Code Online (Sandbox Code Playgroud)


Roc*_*mat 6

'1,2,3,4'是一个字符串,正在转换为int.MySQL通过读取直到第一个非数字字符(在您的情况下为1)将字符串转换为整数,.

所以,

IN ('1,2,3,4') = IN (CAST('1,2,3,4' AS INT)) = IN (1)
Run Code Online (Sandbox Code Playgroud)

查询应该只是:

productOptionsID IN (1,2,3,4)
Run Code Online (Sandbox Code Playgroud)