过滤和条件

时间:2015-01-16 14:49:16

标签: mysql list conditional-statements exists

我有一个表,例如客户端,列为doc_number,我也有一个客户端文档列表,如果它们存在于客户端表中,我不知道。

问题是,是否有任何简单的方法可以获得此列表中的所有客户而不是表格中的客户?

我不想使用辅助表,谢谢!

2 个答案:

答案 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 ..."与文件清单。