数据库表包含名为“name”,“nameInASCII”的列。哪个有价值
'SABARI DAS',
'83 65 66 65 82 73 32 68 65 83'
分别。即使输入'name'变量是交换顺序,我也想编写查询以获取上行。(例如:DAS SABARI)。怎么可能?
答案 0 :(得分:1)
唯一想到的简单/快速选项是明智地使用LIKE
运算符,只是单独搜索名称的组成部分,例如。
SELECT *
FROM yourTable
WHERE name LIKE '%SABARI%' AND name LIKE '%DAS%';
如果这不够具体,那么全文搜索可能是另一种选择:
CREATE VIRTUAL TABLE yourVirtualTable USING FTS5(name, nameInASCII);
INSERT INTO yourVirtualTable (name, nameInASCII)
VALUES
('SABARI DAS', '83 65 66 65 82 73 32 68 65 83');
使用全文搜索设置,现在我们可以同时搜索给定的名字和姓氏:
SELECT *
FROM yourVirtualTable
WHERE yourVirtualTable MATCH 'SABARI AND DAS';
如果匹配DAS AND SABARI
,则上述查询的结果不会改变,即搜索字词的顺序无关紧要。