【问题标题】:SQL condition where 2 values share common character2 个值共享共同字符的 SQL 条件
【发布时间】:2019-05-04 16:21:07
【问题描述】:

我正在尝试创建一个列出人员 ID、人员姓名和人员DOB 的查询,但仅列出名字和姓氏以相同字母开头的人员。所以我将staffFirst 和staffLast 作为单独的列,将它们连接在一起。我不会自定义staffID 和staffDOB。我希望它返回像 adam apple = a apple 这样的员工姓名,所以输出看起来像:

staffID | staffName | staffDOB
------------------------------
1       | A Apple   | 12/10/99
....    | ....      | ....

所有列都在同一个表“N_Staff”中。我正在使用我相信使用 MySQL 的 HeidiSQL。我知道如何获取每列的数据,尽管它选择了名字和姓氏的第一个字母并进行比较,这让我感到困惑,因为它不是我要查找的特定字母,而是两者中常见的任何字母索引 [0] 的表。

到目前为止:

SELECT staffID FROM N_Staff,
SELECT staffFirst, staffLast AS staffName
FROM N_Staff WHERE ... , --perhaps should be using LEFT ?
SELECT staffDOB from N_Staff;

【问题讨论】:

  • 好的,如何选择每个字符串的第一个字符?
  • 要选择每个字符串的第一个字符,您可以使用 SUBSTRING ( MyColumn, 1 , 1 )

标签: mysql sql database join where


【解决方案1】:

怎么样:

SELECT staffID, CONCAT(LEFT(staffFirst,1), ' ', staffLast) AS staffName, staffDOB
FROM N_Staff
WHERE LEFT(staffFirst,1) = LEFT(staffLast,1)

【讨论】:

  • 如果删除 LEFT 语句会发生什么?
【解决方案2】:

使用这个:

    SELECT * FROM NS_WORDS; 
    mani
    nikhil
    sugandh
    mining
    _lkdnsad
    _lkdndsadnjas
    _lk
    _ja
    _ls
    _lsa
    nikhil nikhil
    nikhil name

SELECT * FROM NS_WORDS
where not( to_char(SUBSTR(a,1,1))=to_char(substr(a,instr(a,' ',1,1),1))); 

output:
nikhil nikhil
nikhil name

你的去向如下:

where not( to_char(SUBSTR(staffName ,1,1))=to_char(substr(staffName 
,instr(staffName ,' ',1,1),1))); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 2021-01-02
    • 2017-12-31
    相关资源
    最近更新 更多