删除sql字段中的空格

时间:2014-02-26 14:59:39

标签: mysql sql

我有一个包含三个字段(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)

2 个答案:

答案 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中通常的字符串分隔符。