在每一个空间分隔值的字符串搜索列在数据库
假设我有一列名为CustomerNames与价值观:在每一个空间分隔值的字符串搜索列在数据库
- 地区葡萄酒等人冷却士
- MAGAZZINI 铝 imentari里尤尼蒂纺织厂
- 饥饿的猫头鹰Al夜间杂货店
- 斯普利特啤酒& Al个é
- 铝 FREDS Futterkiste
我想打一个查询,将只搜索的名字和姓氏的第一个字母,并列出基于FIRSTNAME LASTNAME然后ASC顺序的名称。 例如,如果我搜索在上表中“人”,它应该返回我的东西象下面这样:
- 铝 FREDS Futterkiste
- 地区葡萄酒等人冷却士
- 分离轨啤酒& 铝Ë
- MAGAZZINI 铝 imentari里尤尼蒂工厂
- 红ry Owl Al l-Night Grocers
我已经使用了下面的查询。
SELECT * FROM Customers where CustomerName LIKE 'al%' OR CustomerName LIKE '% al%' ORDER BY CustomerName
输出:
- 铝 FREDS Futterkiste
- 饥饿的猫头鹰铝升晚杂货店
- MAGAZZINI 铝 imentari里尤尼蒂纺织厂
- 分离轨啤酒& 铝è
- 地区葡萄酒等人冷却士
这是唯一firstnames的基础上排序结果。 但我想要一个查询,它使用名字和姓氏给出输出。 谢谢。
我不认为有一个简单的答案。你需要写一个函数或存储过程根据命令结果列的值,也就是说,是空间分隔的
看一看这个 MySQL: how to sort the words in a string using a stored function?
不,我正在寻找不同的功能 – 2015-03-31 06:49:47
试试这个:
SELECT * FROM Customers
where CustomerName LIKE 'al%'
OR CustomerName LIKE '% al%'
ORDER BY substring(CustomerName, instr(CustomerName, 'al'))
错误,不存在这样的函数:instr – 2015-03-31 06:50:42
instr从MySQL版本支持:5.6 – Mani 2015-03-31 06:55:34
好吧,所以它的工作,但没有提供所需的结果。即1.)Vins et alcools Chevalier 2.)Split Rail Beer&Ale 3.)Alfreds Futterkiste 4.)Magazzini Alimentari Riuniti 5.)饥饿的猫头鹰通宵杂货店 – 2015-03-31 08:02:17
我很抱歉,但我不明白如何区分名字和姓氏,如果他们都在一列... – 2015-03-31 04:53:00
你不需要通过给他们任何名称来区分它,可以说这些值是空间分开的值,我想优先考虑第一个单词(在第一个空格出现之前),然后下一个然后跟随ng – 2015-03-31 05:01:16