Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL select_expr是否仅用于显示记录的一部分?_Mysql_Sql - Fatal编程技术网

MySQL select_expr是否仅用于显示记录的一部分?

MySQL select_expr是否仅用于显示记录的一部分?,mysql,sql,Mysql,Sql,我正在将.csv文件内容导入Mysql数据库,我从表中显示的一条记录是“name”,但客户端只想显示客户的名字。以下是来自.csv文件的“name”的当前格式: “史密斯,黛布” 我可以很容易地提取并显示整个名称,但是我会使用什么选择_expr来仅提取第一个名称(上面示例中的DEB) 谢谢 最好有两列,分别存储名字。你可以用你的名字 SELECT LTRIM(SUBSTRING_INDEX('SMITH, DEB', ',', -1)); 最后一个参数为-1的子字符串索引取最后一个逗号后的部

我正在将.csv文件内容导入Mysql数据库,我从表中显示的一条记录是“name”,但客户端只想显示客户的名字。以下是来自.csv文件的“name”的当前格式:

“史密斯,黛布”

我可以很容易地提取并显示整个名称,但是我会使用什么选择_expr来仅提取第一个名称(上面示例中的DEB)


谢谢

最好有两列,分别存储名字。你可以用你的名字

SELECT LTRIM(SUBSTRING_INDEX('SMITH, DEB', ',', -1)); 
最后一个参数为-1的子字符串索引取最后一个逗号后的部分。使用LTRIM可以删除前导空白

所以你可以用

SELECT 
    *, 
    LTRIM(SUBSTRING_INDEX(name, ',', -1)) AS firstname
FROM 
    managers 
WHERE 
    account_manager_id = '$account_manager_id'

并且在另一列中有名字
firstname

您是否有具有此类值的列
“SMITH,DEB”
?或者是否要在导入时进行筛选?否,我已使用正确的数据类型设置了列。我需要通过查询而不是在导入过程中完成操作。最好有两列并分别存储第一个名称。您可以通过
选择LTRIM(子字符串_索引('SMITH,DEB',',',-1')获得您的名字查看@VMai将其作为答案发布。我没有看到任何关于如何/在何处添加它的示例。这是我现有的查询:“SELECT*FROM managers,其中account\u manager\u id='$account\u manager\u id'”@techno跛脚:您必须将表达式添加到字段列表中。我将编辑我的答案如何做到这一点。