有一个带字母的搜索过滤器。
如果我点击“D' D'我希望过滤器正常工作然后显示所有艺术家的名字,如:
David McDonald Alice Duncan Daniel O'Neill Beth Douglas-Bain
艺术家表格中有一列名称'它包含first,middle和surname,包括撇号,连字符和双大写。
我试过
SELECT * FROM `artist` WHERE `name` REGEXP BINARY 'D[a-z]'
然而,这并没有正常运作。
我只能使用来自' WHERE子句'的查询所以我不能使用SELECT中的查询。
一些问题的例子是:
麦当劳,奥尼尔,道格拉斯 - 贝恩的姓氏使得查询不能正常运作,因为麦当劳和道格拉斯 - 贝恩有两个大写字母,所以当我点击D'时出现。 O' Neill有一个撇号和双重大写,我无法弄明白。
如果某位SQL专家可以帮助我,我将非常感激。
答案 0 :(得分:0)
试试这个
'(^|[^A-Za-z''])lettervalue'
其中lettervalue
是所选字母
测试了以下名单并取得了成功。
Daniel Grass
Daniel House
Ronald O'House
Craig McHouse
Tina Dreamer
Orion Fantastic
根据需要,
'(^|[^A-Za-z''])O'
拉动" Ronald O' House"和#34; Orion Fantastic",
'(^|[^A-Za-z''])H'
退出" Daniel House" (但忽略了Craig McHouse)
'(^|[^A-Za-z''])M'
拉出了#34; Craig McHouse"
答案 1 :(得分:-1)
试试这个:
select * from artist where name like '%D%' or name like '%d%';