Python 2.7 SQLite3区分大小写,与python 2.7.12类似

Python 2.7 SQLite3区分大小写,与python 2.7.12类似,python-2.7,sqlite,Python 2.7,Sqlite,它可能是双精度的,但是使用搜索Python sqlite区分大小写,例如无法获得任何结果 在Python2.7上的sqlite 3模型中,我遇到了一个区分大小写的查询问题。问题如下:like with%不区分大小写 这里有一个例子: import sqlite3 db = sqlite3.connect("test.db") db.execute("""CREATE TABLE IF NOT EXISTS rec( id INTEGER PRIMA

它可能是双精度的,但是使用搜索Python sqlite区分大小写,例如无法获得任何结果

在Python2.7上的sqlite 3模型中,我遇到了一个区分大小写的查询问题。问题如下:like with%不区分大小写

这里有一个例子:

import sqlite3

db = sqlite3.connect("test.db")
db.execute("""CREATE TABLE IF NOT EXISTS rec(
                id        INTEGER PRIMARY KEY AUTOINCREMENT,
               name   TEXT );""")
db.commit()
for name in "ABC", "abc", "Abc", "aBC":
    db.execute("INSERT INTO rec(name) VALUES(?);",(name,))

print "A%",db.execute("SELECT name FROM rec WHERE name LIKE ?;",("A%",)).fetchall()
print "a%",db.execute("SELECT name FROM rec WHERE name LIKE ?;",("a%",)).fetchall()
结果相当令人惊讶:

A% [(u'ABC',), (u'abc',), (u'Abc',), (u'aBC',)]
a% [(u'ABC',), (u'abc',), (u'Abc',), (u'aBC',)]

可以告诉sqlite区分大小写吗?

您必须先执行SQL语句PRAGMA case\u sensitive\u like=on,然后它才能工作。

您必须先执行SQL语句PRAGMA case\u sensitive\u like=on,然后它才能工作。

GLOB运算符可能是您想要的

GLOB操作符与LIKE类似,但使用Unix文件globbing 其通配符的语法。此外,GLOB与LIKE不同,它区分大小写

注意,最常见的通配符是*、?、和[…],而不是类似的%s和x。 因此:-

应不那么令人惊讶,并导致:-

A% [(u'ABC',), (u'Abc',)]
a% [(u'abc',), (u'aBC',)]
GLOB操作符可能是您想要的

GLOB操作符与LIKE类似,但使用Unix文件globbing 其通配符的语法。此外,GLOB与LIKE不同,它区分大小写

注意,最常见的通配符是*、?、和[…],而不是类似的%s和x。 因此:-

应不那么令人惊讶,并导致:-

A% [(u'ABC',), (u'Abc',)]
a% [(u'abc',), (u'aBC',)]

完美的非常感谢。完美的非常感谢。我喜欢@MikeT答案,但你的答案是最正确的!非常感谢。我喜欢@MikeT答案,但你的答案是最正确的!非常感谢。