假设我有一个保存ID列表的数组,我需要检查id中的每个ID是否存在于mysql表中。
使用以下方法轻松检查其中之一:
const rowEvents = {
onClick: (e, row, rowIndex) => {
console.log(`clicked on row with index: ${rowIndex}`);
}
};
假设要检查的ID为handleChange(event) {
this.setState({
brand: event.target.brand,
model: event.target.model,
color: event.target.color,
topspeed: event.target.top
})
};
。
可以通过使用编程语言中的循环来解决问题,但是如果数组的大小约为10000,该怎么办?那意味着要执行10000次查询?
我想知道的是,是否有一种方法可以编写一条语句,该语句将返回一个包含所有像这样的所有测试结果的结果集
SELECT EXISTS(SELECT * FROM fooTable WHERE id = 1)
这可以获取所有存在的行
1
但是我还需要获取不存在的id的行。
答案 0 :(得分:0)
您可以简单地使用IN
或NOT IN
要获取表中存在的所有ID的行的列表,可以使用SELECT ID FROM FOOTABLE WHERE ID [NOT] IN (SELECT ID FROM BARTABLE)
如果要获取存在的ID,请使用IN
,如果要获取不存在的ID,请仅使用NOT IN
这些查询返回与您的ID匹配或不匹配的所有行
如果您只需要布尔值答案,则只需比较表中的COUNT()