过滤器和条件
Filter and conditions
我有一个 table 例如客户端的列为 doc_number,我还有一个客户端文档列表,我不知道它们是否存在于客户端 table .
问题是,是否有任何简单的方法来获取此列表中而不是 table 中的所有客户?
我不想使用辅助table,谢谢!
你可以编写自己的函数
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')
我不会那样做并用其他语言划分列表
您可以使用派生的 table:
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 ..."。
我有一个 table 例如客户端的列为 doc_number,我还有一个客户端文档列表,我不知道它们是否存在于客户端 table .
问题是,是否有任何简单的方法来获取此列表中而不是 table 中的所有客户?
我不想使用辅助table,谢谢!
你可以编写自己的函数
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')
我不会那样做并用其他语言划分列表
您可以使用派生的 table:
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 ..."。