Python SQL Select从字符串列中删除前导0
Python3.7SQL选择请求使用MYSQL连接器,从由INT列和TEXT列组成的SQL表返回整数列表。尽管文本列由定义为字符串的数字组成,但有些单元格的前导0会在Python查询中删除Python SQL Select从字符串列中删除前导0,python,mysql,sql,select,mysql-connector-python,Python,Mysql,Sql,Select,Mysql Connector Python,Python3.7SQL选择请求使用MYSQL连接器,从由INT列和TEXT列组成的SQL表返回整数列表。尽管文本列由定义为字符串的数字组成,但有些单元格的前导0会在Python查询中删除 例如,考虑下面的SQL表行,其中“text”列被设置为文本: id text 1 03034999 我使用以下代码返回此行: import mysql.connector cnx = mysql.connector.connect(user='root', password='', host='127.0
例如,考虑下面的SQL表行,其中“text”列被设置为文本:
id text
1 03034999
我使用以下代码返回此行:
import mysql.connector
cnx = mysql.connector.connect(user='root', password='', host='127.0.0.1', database='db')
cursor = cnx.cursor()
select_row = 'SELECT * FROM table1 WHERE text LIKE "0303____" LIMIT 1'
cursor.execute(select_row)
result = cursor.fetchall()
## output: [(1, 3034999)]
“03034999”中的前导0被删除。我怎样才能避免这种情况发生
编辑:使用VARCHAR(255)列而不是文本列可以解决此问题,并且不会再删除前导的0:
## output: [(1, '03034999')]
尾随零是被删除还是前导零被删除?在任何情况下,这都是不可复制的,如果
text
确实是一种文本列类型,那么就不应该发生这种情况。另一个注意事项:使用LIMIT
而不使用ORDER BY
是毫无意义的。您需要向MySQL提供一些命令,以使限制具有任何意义。“03034999”中的前导0被删除。那不是MySQL。检查python为何将此值视为数字而不是字符串,以及如何修复它。