我可以从SQL搜索(WHERE子句)中删除撇号吗?

时间:2013-08-23 13:36:38

标签: php mysql sql

我在SQL(Mysql)中使用where子句进行查询。

SELECT * FROM TABLE WHERE name = 'Bristols';

现在我知道表中有一行包含带有撇号的Bristol's,但没有一个没有撇号的行。不管怎么说,我想要返回该行。问题是,我只能为查询提供值而不用撇号:Bristols - 查询中是否有任何方法可以从查询搜索的字段中删除撇号?

3 个答案:

答案 0 :(得分:2)

SELECT * FROM TABLE
WHERE replace(name, '''', '') = 'Bristols'

答案 1 :(得分:1)

有几种方法可以实现这一目标:

See Fiddle

  1. 正则表达式:

    SELECT  * 
    FROM    cities
    WHERE   name REGEXP 'Bristol\'?s';
    
  2. 替换:

    SELECT  * 
    FROM    cities
    WHERE   'Bristols' = replace(name,'\'','');
    
  3. 明确匹配:

    SELECT  * 
    FROM    cities
    WHERE   name IN('Bristols','Bristol''s');
    

答案 2 :(得分:0)

您有两种可能的展望:

第一:

 SELECT * FROM TABLE WHERE name LIKE '%Bristol%' // Gather data like: BrISTOLS, Bristols, Bristol, Bristol's,

第二:

  SELECT * FROM TABLE WHERE replace(name,'''','') = 'Bristols'