MySql基于两列从数据库中提取数据

时间:2016-01-15 13:12:55

标签: mysql sql

我试图以这样的方式创建/运行我的sql查询:sql根据第1列(USER)中的某些条件选择数据,但同时根据第2列中的某些条件排除某些数据( ADDRESS)

E.g:

SELECT ADDRESS,USER
FROM Data1.Table1
WHERE FIELD(USER,'%AMIT%','%JOHN%','%SANDEEP%','%WARNE%')
  AND ORIGINATING_ADDRESS NOT LIKE 'MUMBAI','CHINA','PAKISTAN'

这是错误的。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

使用NOT IN放弃select中的值列表。考虑到你想在完全匹配时丢弃

ORIGINATING_ADDRESS NOT IN ('MUMBAI','CHINA','PAKISTAN')

如果您想使用模式搜索并丢弃,请使用此

ORIGINATING_ADDRESS NOT LIKE '%MUMBAI%' OR 
ORIGINATING_ADDRESS NOT LIKE '%CHINA%' OR      
ORIGINATING_ADDRESS NOT LIKE '%PAKISTAN%' 

答案 1 :(得分:0)

对于一组值,请使用NOT IN,而不是NOT LIKE

答案 2 :(得分:0)

您可能会发现简单的正则表达式用于此目的:

SELECT ADDRESS,USER
FROM Data1.Table1
WHERE USER REGEXP 'AMIT|JOHN|SANDEEP|WARNE' AND
      ORIGINATING_ADDRESS NOT REGEXP 'MUMBAI|CHINA|PAKISTAN';