mysql - 更改 MySQL 查询中姓氏和其余姓名的位置

标签 mysql

我的“名称”列的名称存储如下

姓氏 名字 中间名

我想在我的查询中像这样显示它:

名字 中间名 姓氏

  • 并非所有记录都有中间名,因此列中可能有 1 个或 2 个空格

我已经尝试过:

SELECT CONCAT ( SUBSTRING_INDEX(`name`, ' ', 1) , ' ' , SUBSTRING_INDEX(`name`, ' ', -1) ) AS nicename`

但这仅给出了姓氏。 “-1”部分不起作用...

感谢大家的帮助。

最佳答案

首先,这是一个糟糕的设计,现在,由于您的中间名部分可能是空的,您可以忍受它,只需选择select name from tbl1的名称即可。

否则,请考虑重新设计您的表格,为 LastnameFirstnameMiddlename 提供单独的列,然后您就不需要全部这个的。您可以从所有 3 列中获取数据

select concat(Firstname, Middlename, Lastname ) as nicename
from tbl1;

关于mysql - 更改 MySQL 查询中姓氏和其余姓名的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41181413/

相关文章:

mysql - 语法错误,意外的 Declare_sym

mysql - 这个简短的过程有什么问题(MySQL)

mysql - 使用带有重音符号的文件名的 MySQL LOAD DATA

php - 使用 PDO 插入多行

mysql - 同步 joomla mysql 和 powerbuilder sql anywhere 数据库

mysql - 如何将大型sql插入拆分为多个插入

php - Laravel 仅从数据库中抛出一组数据

php - 在mysql数据库中插入大量迭代行

mysql - 使用 ruby​​ 脚本删除并重新创建 MySQL 数据库

php - MySQL插入查询请求资源