2014-02-26 3 views
0

컴퓨터 이름 중 두 개가 (311A__) _ =spaces and (311B__) 공백이있는 컴퓨터 이름에 행을 선택하고 삽입하는 방법으로 컴퓨터 이름 중 두 개에 (ID , machine_name, carpark_id) 개의 필드가 있습니다.SQL 필드에서 공백 제거

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

하는 경우 공백이 있으면 문자열 주위에 따옴표를 붙이십시오. –

+0

"공백이있는 컴퓨터 이름에 행을 선택하여 삽입하십시오.". 당신은 MySQL이 문자열의 끝 부분에 트리밍을한다는 점을 언급하지 않았다. 질문을 잘 재구성해야합니다. –

+0

아 그래, 나는 그 사람들이 흔적을 남기고 있다는 사실을 놓쳤다. –

답변

-1

필터링 기계 : '% %';

삽입 : 문제점 : 작은 따옴표 사이에 공백을 넣으면됩니다.

MySQL에서 일반적인 문자열 구분 기호 인 작은 따옴표 대신 큰 따옴표를 사용한다는 것을 알고 있습니다.

+0

qoutes를 넣었는지 여부에 관계없이 MySQL은 CHAR 또는 VARCHAR 필드에 putted 된 모든 문자열을 자동으로 트림합니다. – Mazzy

+0

귀하는 "행을 선택하여 공백이있는 컴퓨터 이름에 삽입하십시오."라고하셨습니다. 당신은 MySQL이 문자열의 끝 부분에 트리밍을한다는 점을 언급하지 않았다. 질문을 잘 재구성해야합니다. –

1

나는 어떤 문제가 있는지 알고 있습니다!

MySQL은 항상 문자열을 자동으로 트림하므로 'a'를 삽입하면 실제로 'a'가됩니다. 열 길이를 초과 후행 공백 VARCHAR 열의 경우

https://dev.mysql.com/doc/refman/5.0/en/char.html

"

가 삽입되기 전에 절단되고 경고없이 사용되는 SQL 모드가 생성된다. CHAR 컬럼 초과 후미 공간에 절단 삽입 된 값에서 SQL 모드에 관계없이 자동으로 수행됩니다. "

당신은 무시되지 않습니다 방울을 사용해보십시오 공백

당신이, 당신이 공백을 포함하는 LIKE 'String '를 사용할 수있는 CHAR 또는 VARCHAR 필드를 계속 사용하려면, WHERE col = 'String '가 작동하지 않습니다 수