我有下面的Vehicle_parts表,
| Vehicle_ID | Vehicle_Major_Part_Number | Vehicle_Sub_Part_Number |
|---|---|---|
| 1 | 11111 xxx | 22222 xxx |
| 2 | 33333 茲茲 | 11111 年年 |
| 3 | 44444 aaa | 22222 BB |
| 4 | 22222 茲茲 | 11111 年年 |
| 5 | 88888 zzz | 44444 年年 |
我需要對表格的整個列進行關鍵字搜索。
示例:如果關鍵字: “11111”和“88888”,那么結果將如下表所示,
| Vehicle_ID | Vehicle_Major_Part_Number | Vehicle_Sub_Part_Number |
|---|---|---|
| 1 | 11111 xxx | 22222 xxx |
| 2 | 33333 茲茲 | 11111 年年 |
| 4 | 22222 茲茲 | 11111 年年 |
| 5 | 88888 zzz | 44444 年年 |
我在where子句中嘗試了Like陳述句,但 ** where** 子句不允許搜索多個列。
我也嘗試了下面的函式,
Create function [Keyword_Search](@Keyword Varchar(100))
Returns table
as
RETURN(SELECT * FROM Vehicle_parts WHERE
[Vehicle_Major_Part_Number] LIKE @Keyword
or [Vehicle_Sub_Part_Number] LIKE @Keyword
SELECT * FROM Keyword_Search ('111%')
在這里,我無法一次提供多個關鍵字進行搜索。
請建議我在表格中的所有列上搜索多個關鍵字的有效方法。
uj5u.com熱心網友回復:
您可以在子句中放置多個LIKE條件WHERE來檢查您命名的每個條件。根據您的描述,此查詢將起作用:
SELECT vehicle_id, vehicle_major_part_number, vehicle_sub_part_number
FROM vehicle_parts
WHERE vehicle_major_part_number LIKE '11111%'
OR vehicle_major_part_number LIKE '88888%'
OR vehicle_sub_part_number LIKE '11111%'
OR vehicle_sub_part_number LIKE '88888%';
帶有 % 的查詢,LIKE尤其是帶有 % 的查詢(用于標記后面可能出現的更多字符)通常很慢,而且如您所見,它們也可能很長而且難以閱讀。你也可以嘗試這樣的事情:
SELECT vehicle_id, vehicle_major_part_number, vehicle_sub_part_number
FROM vehicle_parts
WHERE CONCAT(vehicle_major_part_number, vehicle_sub_part_number) LIKE '111%' OR
CONCAT(vehicle_major_part_number, vehicle_sub_part_number) LIKE '
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/489868.html
