SQL查找存在术语但不在括号中的值

时间:2014-05-12 21:55:34

标签: php mysql sql regex

有没有办法搜索值中但不在括号中的术语?

示例:让我们说我们搜索Bob:

  

鲍勃(不是鲍勃) - 正确

     鲍勃(蒂姆) - 正确

     蒂姆(鲍勃) - 忽略

     鲍勃(鲍勃) - 正确

SELECT * FROM people WHERE name LIKE 'bob not in parenthesis'

3 个答案:

答案 0 :(得分:2)

未经测试的:

SELECT INSTR('myteststring','Bob') and not(INSTR('myteststring','(Bob)')); 

答案 1 :(得分:2)

 SELECT * FROM table WHERE column NOT LIKE '%(Bob)%' AND column LIKE '%Bob%'

如果bob在括号中,即使第二个条件为真,它也会失败,如果不是两个条件都为真,那么返回值

答案 2 :(得分:-1)

您可以使用mysql函数:

CREATE FUNCTION CheckForTerm (items VARCHAR(255))
RETURNS bit(1)

BEGIN

 DECLARE sf_result BIT DEFAULT 0; 

 SELECT count(*) from table where items in @item

 SET sf_result = 1;

 RETURN sf_result ;

END