与case和“=”的SQL区分大小写的字符串比较

时间:2012-10-13 09:54:35

标签: sql sqlite select string-comparison

我有一个名为category的表。

在此表中我有两列1.)cat_id,2。)cat_name

在此表中,我添加了包含此值的记录:cat_id = 1cat_name = test

现在我要运行选择查询

SELECT * FROM category WHERE cat_name = 'Test'

此查询返回null结果,因为在数据库记录字符串中 test 并且在查询中它是 Test 标记大写字符串的差异这里。 null结果的Instade我想要第一条记录的结果。

我也想要相同的结果,反之亦然小和大写字符串。

我使用sqlite作为数据库。

3 个答案:

答案 0 :(得分:9)

使用上部功能。

SELECT * FROM category WHERE upper(cat_name) = upper('Test')

答案 1 :(得分:6)

SELECT * FROM category WHERE cat_name = 'Test' COLLATE NOCASE;

答案 2 :(得分:1)

使用LOWER:

SELECT * FROM category WHERE LOWER(cat_name) = 'test'

将为您提供TeSt的所有组合