0

首先,我有一个包含产品数据的 mysql 表,包括一个 EAN 代码(没什么特别的,只是一个数字代码)。

其次,我有 EAN 代码值列表。此列表不存储在任何表中,它是由用户输入创建的。

有没有办法从我的列表中找到产品表中不存在的每个 EAN 代码,而无需先将 EAN 列表存储在表中?

例如,假设 products 表中有以下数据:

id: 1, ean: 12345
id: 2, ean: 23456

以及要比较的列表:

12345,23456,88888,99999

在这种情况下,期望的结果是

88888,99999.
4

1 回答 1

0

这是解决方案:

SELECT tmp_list.ean FROM (
                          SELECT 12345 AS ean UNION
                          SELECT 23456 AS ean UNION
                          SELECT 88888 AS ean UNION
                          SELECT 99999 AS ean
                         ) AS tmp_list
                    WHERE ean NOT IN (
                                       SELECT ean FROM table_name
                                     )

如果您的列表元素数量较少,这会很有帮助。

于 2012-07-18T09:19:16.277 回答