actualización de MySQL con y operador

Chaitanya Bankanhal:

Había escrito una sintaxis incorrecta para una consulta SQL. Pero aún así, emite ningún error con un java tomcat servidor. Que se ejecuta en Debian 9. MySQL Versión:

mysql  Ver 14.14 Distrib 5.7.24, for Linux (x86_64)

La consulta fue de la siguiente manera, me había perdido la coma '' con 'y' después de que el operador de conjuntos

UPDATE table_pod_print set print_status = 1 and operator_id = 2091 where id = 1

He intentado ejecutarlo en la consola, que me dio la salida siguiente:

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

Por favor, ayúdame a entender por qué la consulta trabajó en el primer lugar.

Charles Dowbecki:

En MySQL SELECT 1 AND 0;produce 0debido a que el operador AND Evalúa operandos como un AND lógico. En cuanto a su consulta el SET print_statusse evaluó como (añadiendo soportes adicionales para mayor claridad):

print_status = (1 AND (operator_id = 2091)) 

lo que quiere decir que sería 1 AND 1si operator_id = 2091para la actualización id = 1fila era verdad y 1 AND 0si no.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=217881&siteId=1
Recomendado
Clasificación