如何使用单个查询检查Mysql表中是否存在每行?

时间:2019-07-01 08:15:06

标签: mysql

假设我有一个保存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的行。

1 个答案:

答案 0 :(得分:0)

您可以简单地使用INNOT IN 要获取表中存在的所有ID的行的列表,可以使用SELECT ID FROM FOOTABLE WHERE ID [NOT] IN (SELECT ID FROM BARTABLE) 如果要获取存在的ID,请使用IN,如果要获取不存在的ID,请仅使用NOT IN 这些查询返回与您的ID匹配或不匹配的所有行 如果您只需要布尔值答案,则只需比较表中的COUNT()

相关问题