我有一个表,例如客户端,列为doc_number,我也有一个客户端文档列表,如果它们存在于客户端表中,我不知道。
问题是,是否有任何简单的方法可以获得此列表中的所有客户而不是表格中的客户?
我不想使用辅助表,谢谢!
答案 0 :(得分:1)
你可以编写自己的功能
CREATE DEFINER=`root`@`localhost` FUNCTION `filter_clients`(InString Varchar(1000)) RETURNS varchar(1000) CHARSET utf8
BEGIN
# loop to divide string list by comma
# select for each string segment
# add result to Outstring.i
RETURN OutString;
END
稍后用
调用它SELECT filter_clients('123456, 1234658, 145678')
我不会这样做,并用其他语言划分列表
答案 1 :(得分:0)
您可以使用派生表:
SELECT * FROM (
SELECT 2000 AS doc_number
UNION ALL SELECT 2001
UNION ALL SELECT 2002
UNION ALL SELECT 2003
UNION ALL SELECT 2004
UNION ALL SELECT 2005
UNION ALL SELECT 2006
) b
WHERE b.doc_number NOT IN (SELECT doc_number FROM client)
只需打开一个电子表格,然后选择" union all ..."与文件清单。