我有一张桌子:
姓名姓氏和输出名称(=姓名姓氏)
名称和姓氏应始终具有值,但有些时间是空的。 我需要从姓氏中选择表格,我不能使用姓氏字段。 我甚至无法使用脚本更改字段值,因为我从外部源获取此表,并且可以随时更改。 数据库是MySQL 4.x
我可以选择以一些字母开头的Outputname中的第二个单词吗?
之类的东西SELECT Outputname FROM USERS
WHERE seconword(Outputname) LIKE 'A%' SORT BY seconword(Outputname) ASC
答案 0 :(得分:2)
试试这个
SELECT
SUBSTRING_INDEX(Outputname, ' ', -1) as SecondWord
FROM USERS
WHERE SUBSTRING_INDEX(Outputname, ' ', -1) LIKE 'A%'
ORDER BY SecondWord ASC
答案 1 :(得分:1)
一种可能的方法:
SELECT Surname
FROM (
SELECT SUBSTRING_INDEX(Outputname, ' ', -1)
AS Surname
FROM Users) AS S
WHERE Surname LIKE 'A%'
ORDER BY Surname;
SQL Fiddle。此方法基于Outputname的格式始终为'FirstName LastName'
的假设(即,' '
符号用作分隔符,并且每次仅使用一次)。
答案 2 :(得分:0)
我根本不明白你的问题。所以你只能访问Outputname(由两个单词name + surname组成),你必须用第二个单词对它进行排序吗?
尝试类似的东西(对我有用):
SELECT
Outputname,
SUBSTRING_INDEX(Outputname, ' ', -1) as SecondWord
FROM USERS
ORDER BY SecondWord ASC
条款SUBSTRING_INDEX(Outputname, ' ', -1) as SecondWord
返回空格后面的最后一个单词。所以,如果你有Outputname ='Maria Callas',它会返回'Callas',如果你有Outputname ='Sophia Cecilia Kalos',它会返回'Kalos'。