我可以使用以下内容选择具有一个条件的多行:
SELECT `Col`, `Col2` FROM `Table` WHERE `Col3` IN (?, ?, ?, ?, ?);
# This selects 5 rows
Run Code Online (Sandbox Code Playgroud)
如果有多个条件(所有整数等于运算),如何做到这一点?
查询需要检查三个条件,所有这三个条件构成了复合主键。
单个查询将选择 10 到 100 行(尽管大多数情况下只有 10 行)——它在性能方面必须很快。这就是为什么使用多个查询不是一个好主意。
该CREATE TABLE声明是:
CREATE TABLE `Table Name` (
`X` smallint(6) unsigned NOT NULL,
`Y` smallint(6) unsigned NOT NULL,
`Z` smallint(6) unsigned NOT NULL,
`Data` varchar(2048) NOT NULL DEFAULT '',
PRIMARY KEY (`X`,`Y`,`Z`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
对于多个查询,可以这样做:
SELECT `One`, `Two` FROM `Table` WHERE `X` = ? AND `Y` = ? AND …Run Code Online (Sandbox Code Playgroud)