用户输入以下字符串2SMD4COMPUTEREH2KLD【自由输入】 我需要的是在表 devices 中找到正确的 id
用户输入以下字符串 2SMD4COMPUTEREH2KLD [ 2SMD4COMPUTEREH2KLD ] 我需要的是在表中找到正确的ID 在这种情况下,Id = 3,在下一次迭代中,用户可以输入 KL2USB3UYDJKWLDK [USB IS INSIDE THE STRING],在这种情况下,id 应为 = 2
身份证 | 价值 |
---|---|
1 | 笔记本电脑 |
2 | USB |
3 | 电脑 |
4 | 监控 |
5 | 鼠标 |
您可以使用动态
LIKE
表达式:
SELECT ID
FROM yourTable
WHERE <input> LIKE '%' || Value || '%';
使用您给出的示例,以下内容是正确的:
2SMD4COMPUTEREH2KLD LIKE '%COMPUTER%'
并且会返回
ID = 2
。
以下是我如何使用 SQL Server SSMS 作为示例来完成您的请求:
DROP TABLE IF EXISTS #TEST_DATA;
CREATE TABLE #TEST_DATA(
ID INT IDENTITY(1,1)
,[VALUE] VARCHAR(20)
)
INSERT INTO #TEST_DATA (
VALUE
)
VALUES
('LAPTOP'), ('USB'), ('COMPUTER'),('MONITOR'), ('MOUSE')
DROP TABLE IF EXISTS #TEST_VALUES;
CREATE TABLE #TEST_VALUES(
[INPUT] VARCHAR(20)
)
INSERT #TEST_VALUES (
INPUT
)
VALUES
('2SMD4COMPUTEREH2KLD'), ('KL2USB3UYDJKWLDK')
SELECT
TD.*
,TV.INPUT
FROM
#TEST_VALUES TV
LEFT OUTER JOIN
#TEST_DATA TD
ON TV.INPUT LIKE '%' + TD.VALUE + '%'