我有以下内容:
SELECT * FROM users LEFT JOIN user_info ON users.id=user_info.user_id
WHERE
((user_info.tester != 1) OR (user_info.tester is null)) AND
id in (SELECT explicituser_id FROM user_login WHERE (created < '2012-12-17' OR created >= date_add('2012-12-17', interval 1 day))) AND
id IN (SELECT participte_id FROM roster WHERE roster_id IN (6))
order by
substring_index(users.name, ' ', -1)
我只是想按用户排序&#39;姓。
然而,虽然它可以按名字排序,但是姓氏是错误的。如果用户的名字周围有引号(即#34; Abigail Martinez&#34;它会使排序不正确。如果用户只提供一个名字,并且它是昵称(即Juan),那么它也会使它不正确。然后是中间的首字母缩写(即Tiffany S Villa或Steve de la Makinov)。不幸的是,这只使用一列作为全名(users.name)。
感谢任何帮助。谢谢!
答案 0 :(得分:8)
substring_index(TRIM(users.name), ' ', -1)
添加TRIM
将删除尾随空格。之后,按预期进行排序。
答案 1 :(得分:0)
如果是这种情况尝试获取所有行,然后可以尝试使用mysql_real_escape_string。所以你不会有报价。它会是这样的。
$row['new_name'] = mysql_real_escape_string($row['name']);
我不太确定表现是否合适无论是否适合......
希望这可能会有所帮助