MySQL WHERE IN和另一个变量相等

时间:2019-02-21 14:39:37

标签: mysql

我正在运行以下查询,希望能收到前三行,但是我得到的只是第一行。

查询范围

SELECT * FROM inventories WHERE id IN ('1,2,3') AND state = 1

数据库
Data

结果

[ RowDataPacket {
    id: 1,
    uid: 1,
    name: 'An Epic Item',
    suggested_price: 29212,
    image: 'http://hanatemplate.com/images/emoji-ok-7.png',
    state: 1 } ]

为什么不返回前三行而不是仅返回第一行?

1 个答案:

答案 0 :(得分:2)

它不应返回任何内容,因为您已将列表括在引号中(但请参见下文)。试试

SELECT * FROM inventories WHERE id IN (1,2,3) AND state = 1

根据注释,SQL将字符串转换为整数1,这就是为什么您获得第一条记录的原因。