Python Sqlite3 函数 LOWER UPPER 不起作用

问题描述 投票:0回答:1
import sqlite3

connection = sqlite3.connect('test.db')
cursor = connection.cursor()
cursor.execute("DROP TABLE `products`")
cursor.execute('''CREATE TABLE IF NOT EXISTS products (
    id INTEGER PRIMARY KEY, 
    name TEXT
)''')

cursor.execute("INSERT INTO products (name) VALUES (?)", ('Päärynä',))
cursor.execute("INSERT INTO products (name) VALUES (?)", ('Банан',))
cursor.execute("INSERT INTO products (name) VALUES (?)", ('Banana',))
connection.commit()
cursor.execute(
    "SELECT LOWER(name), UPPER(name), name FROM products WHERE name='Päärynä' OR name='Banana' OR name='Банан'")
result = cursor.fetchall()
connection.close()
print(result)

#[('päärynä', 'Päärynä', 'Päärynä'), ('Банан', 'Банан', 'Банан'), ('香蕉', 'BANANA', '香蕉')]

我注意到并非所有语言都会发生变化。如何解决这个问题?

python sqlite lowercase
1个回答
0
投票

SQLite 的 UPPER 函数仅适用于 ASCII 字符,根据 docs:

上(X)

upper(X) 函数返回输入字符串 X 的副本,其中所有小写 ASCII 字符都转换为其等效的大写字符。

© www.soinside.com 2019 - 2024. All rights reserved.