数据库查询语法问题

时间:2016-03-04 06:05:31

标签: android

我的查询中出现语法错误:

  

near“,”:语法错误:

我的查询是

 select 
     emplnmbr, empname, desigtxt 
 from 
     emp_header 
 where 
     CMPYCODE = 'MMPL' 
     and orguntxt like ('%MARKETING%', '%PERSONNEL&ADMINISTRATION%')

如果我用一个值y

替换查询
 select 
     emplnmbr, empname, desigtxt 
 from 
     emp_header 
 where 
     CMPYCODE = 'MMPL' 
     and orguntxt like ('%MARKETING%')

它有效。有人请帮我找到这个问题

4 个答案:

答案 0 :(得分:2)

如果要检查多个值,则需要使用IN代替LIKE

SELECT
    emplnmbr, empname, desigtxt
FROM
    emp_header
WHERE
    CMPYCODE = 'MMPL'
    AND orguntxt IN ('%MARKETING%', '%PERSONNEL&ADMINISTRATION%')

答案 1 :(得分:1)

如果您尝试

SELECT emplnmbr,empname,desigtxt FROM emp_header WHERE CMPYCODE ='MMPL' AND orguntxt IN ('%MARKETING%','%PERSONNEL&ADMINISTRATION%')

SQLite 中使用 IN运算符。如果您希望获得所有匹配,请参阅@laalto回答

,以用于完全匹配

答案 2 :(得分:0)

试试这个:

select emplnmbr,empname,desigtxt from emp_header where CMPYCODE = 'MMPL'   and orguntxt IN ('%MARKETING%','%PERSONNEL\&ADMINISTRATION%')

注意: - 就像排除一个参数一样。

答案 3 :(得分:0)

要合并多个LIKE表达式,请使用OR

orguntxt like '%MARKETING%' or orguntxt like '%PERSONNEL&ADMINISTRATION%'
许多其他答案中提到的

IN存在一个完全匹配的问题,而不是LIKE模式匹配。