我正在运行以下查询,希望能收到前三行,但是我得到的只是第一行。
查询范围
SELECT * FROM inventories WHERE id IN ('1,2,3') AND state = 1
结果
[ RowDataPacket {
id: 1,
uid: 1,
name: 'An Epic Item',
suggested_price: 29212,
image: 'http://hanatemplate.com/images/emoji-ok-7.png',
state: 1 } ]
为什么不返回前三行而不是仅返回第一行?
答案 0 :(得分:2)
它不应返回任何内容,因为您已将列表括在引号中(但请参见下文)。试试
SELECT * FROM inventories WHERE id IN (1,2,3) AND state = 1
根据注释,SQL将字符串转换为整数1,这就是为什么您获得第一条记录的原因。