我有一个包含三个字段(ID , machine_name, carpark_id)
的表,其中两个机器名称(311A__) _ =spaces and (311B__)
如何选择并将行插入到机器名中,其中包含空格。
sql_local = """SELECT id FROM customer_1.pay_machines WHERE machine_name="%s" """ % machine
sql_local = """INSERT INTO customer_1.pay_machines (machine_name, carpark_id) VALUES ("%s", 0)""" % machine
sql_local = """SELECT id FROM customer_1.pay_machines WHERE machine_name="%s" """ % machine
sql_local = """INSERT INTO customer_1.pay_and_display (plate, machine_id, ticket_datetime, expiry_datetime, ticket_name, ticket_price) VALUES ("%s", "%s", "%s", "%s", "%s", "%s") """ % (plate, machineId, entryDatetime, expiryDatetime, ticketName, ticketPrice)
答案 0 :(得分:1)
我知道你遇到了什么问题!
MySQL总是自动修剪你的字符串,所以插入'a'实际上只是'a'。
https://dev.mysql.com/doc/refman/5.0/en/char.html
“对于VARCHAR列,超出列长度的尾随空格在插入之前被截断,并且无论使用何种SQL模式,都会生成警告。对于CHAR列,从静态执行截断插入值中的多余尾随空格无论SQL模式如何。“
您可以尝试使用不会忽略空格的blob
如果您想继续使用CHAR或VARCHAR字段,可以使用LIKE 'String '
包含空格,WHERE col = 'String '
将不起作用
答案 1 :(得分:-1)
带空格的过滤机器:机器像'%%';
插入:有什么问题?只需在单引号之间加上空格即可。
我注意到你使用双引号而不是单引号,这是MySQL中通常的字符串分隔符。