【发布时间】:2015-03-15 05:03:33
【问题描述】:
我有一个表,例如客户,其列为 doc_number,我还有一个客户文档列表,我不知道它们是否存在于客户表中。
问题是,是否有任何简单的方法可以获取此列表中而不是表中的所有客户?
我不想使用辅助表,谢谢!
【问题讨论】:
-
试着澄清你的问题
标签: mysql list conditional-statements exists
我有一个表,例如客户,其列为 doc_number,我还有一个客户文档列表,我不知道它们是否存在于客户表中。
问题是,是否有任何简单的方法可以获取此列表中而不是表中的所有客户?
我不想使用辅助表,谢谢!
【问题讨论】:
标签: mysql list conditional-statements exists
你可以自己写函数
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')
我不会这样做并用其他语言划分列表
【讨论】:
您可以使用派生表:
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 select ...”。
【讨论】: