Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQL Select从字符串列中删除前导0_Python_Mysql_Sql_Select_Mysql Connector Python - Fatal编程技术网

Python SQL Select从字符串列中删除前导0

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

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.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为何将此值视为数字而不是字符串,以及如何修复它。