比较sql中的ASCII值

时间:2017-11-23 07:29:48

标签: sql sqlite

数据库表包含名为“name”,“nameInASCII”的列。哪个有价值

'SABARI DAS',
'83 65 66 65 82 73 32 68 65 83'

分别。即使输入'name'变量是交换顺序,我也想编写查询以获取上行。(例如:DAS SABARI)。怎么可能?

1 个答案:

答案 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,则上述查询的结果不会改变,即搜索字词的顺序无关紧要。