簡體   English   中英

SQL查找字符串的一部分

[英]SQL find part of string

我遇到了以下問題:我的表“ students ”具有列:“ id_student ”,“ name”和“ surname ”。 然后,我得到一個包含full_name的變量(例如:' James Bond '),我需要進行查詢以選擇'id_student ',其中'name'和'surname'匹配全名。

我試圖通過幾種方式做到這一點,例如:

SELECT id_student FROM students WHERE name+' '+surname LIKE full_name

但這不起作用。 任何想法?

您的代碼應在數據庫中,其中+用於字符串連接。 LIKE很好,但是=似乎足夠:

SELECT id_student
FROM students
WHERE CONCAT(name, ' ', surname) = full_name;

請注意,意外的字符和拼寫上的微小差異會導致比較失敗。

MySQL不支持使用加號的字符串連接,至少默認情況下不支持。 相反,我們可以使用CONCAT函數。 您想要在此處的LIKE表達式是:

full_name LIKE 'James%Bond'

在這里,我們需要任何以James開頭並以Bond結尾的記錄。

SELECT id_student
FROM students
WHERE full_name LIKE CONCAT(name, '%', surname);

也許您應該嘗試類似的方法:

SELECT id_student 
FROM students
WHERE CONCAT_WS(" ", name, surname) 
LIKE full_name

CONCAT_WSCONCAT是連接字符串的MySQL函數。 前者允許您定義分隔符,即您的情況下的空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM