我是 SQL 的新手,我正在嘗試進行基本的查詢。
這是我要搜索的表格及其布局:https : //prnt.sc/20wj54g
我的目標是有一個搜索詞輸入,然后輸入用于按全名搜索資料庫中的名稱。
這是我現在的當前查詢:
SELECT *
FROM personnel p
LEFT JOIN department d ON (d.id = p.departmentID)
LEFT JOIN location l ON (l.id = d.locationID)
WHERE p.firstName LIKE '%Robert Heffron%' OR p.lastName LIKE '%Robert Heffron%';
這不起作用,因為沒有包含整個字串“Robert Heffron”的姓氏或名字,但這意味著如果用戶輸入該字串以查找該人的全名,他們將找不到他們。
我目前正在使用 PHP 和 JS 來顯示資料,但我正在努力處理 SQL 部分。如果有人可以提供幫助,我將不勝感激。
uj5u.com熱心網友回復:
我建議在您的資料庫表中添加一個全名欄位,并且每當您在代碼中創建一個“人員”時,您將名字和姓氏連接起來:
Fullname = Firstname " " Lastname
如果您不喜歡這樣,可以使用字串拆分函式(在 php 中它可能是 .explode()),然后為名字和姓氏的每個子字串添加 WHERE OR 陳述句。
uj5u.com熱心網友回復:
使用以下組合查找姓名Robert和姓氏的人Heffron
只要找到羅伯特·赫弗倫
WHERE p.firstName LIKE '%Robert%' AND p.lastName LIKE '%Heffron%';
查找所有帶有Robert 的名字和所有帶有Heffron 的姓氏
WHERE p.firstName LIKE '%Robert%' OR p.lastName LIKE '%Heffron%';
uj5u.com熱心網友回復:
您可以對列使用 concat,并且可以對連接的列使用“HAVING”子句。我希望它對你有用。
SELECT * FROM personnel p LEFT JOIN department d ON (d.id = p.departmentID) LEFT JOIN location l ON (l.id = d.locationID) HAVING CONCAT(firstName,' ',lastName) LIKE '%Robert Heffron%';
我希望這個片段對你有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/365691.html
