我在SQL(Mysql)中使用where子句进行查询。
SELECT * FROM TABLE WHERE name = 'Bristols';
现在我知道表中有一行包含带有撇号的Bristol's
,但没有一个没有撇号的行。不管怎么说,我想要返回该行。问题是,我只能为查询提供值而不用撇号:Bristols
- 查询中是否有任何方法可以从查询搜索的字段中删除撇号?
答案 0 :(得分:2)
SELECT * FROM TABLE
WHERE replace(name, '''', '') = 'Bristols'
答案 1 :(得分:1)
有几种方法可以实现这一目标:
正则表达式:
SELECT *
FROM cities
WHERE name REGEXP 'Bristol\'?s';
替换:
SELECT *
FROM cities
WHERE 'Bristols' = replace(name,'\'','');
明确匹配:
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'