valor validar update una tipo reemplazar insertar dato convertir consulta campo cambiar actualizar mysql sql-update

validar - update en mysql



Cómo actualizar la columna con valor nulo (11)

Estoy usando mysql y necesito actualizar una columna con un valor nulo. He intentado esto de muchas maneras diferentes y lo mejor que he obtenido es una cadena vacía.

¿Hay una sintaxis especial para hacer esto?


Otra posible razón para la cadena vacía, en lugar de una verdadera nula es que el campo es un índice o es parte de un índice. Esto me sucedió a mí: usando phpMyAdmin, edité la estructura de un campo en una de mis tablas para permitir valores NULL marcando la casilla " Nulo " y luego presionando el botón " Guardar ". " La fijación de precios de la mesa se ha modificado con éxito " se mostró así que asumí que el cambio sucedió, pero no fue así. Después de hacer una ACTUALIZACIÓN para establecer todos esos campos en NULL , en cambio, se establecieron en cadenas vacías , así que eché un vistazo a la estructura de la tabla de nuevo y vi que la columna " Nulo " para ese campo se estableció en '' no '' . ¡Entonces me di cuenta de que el campo formaba parte de la clave primaria !


Para aquellos que enfrentan un problema similar, descubrí que al ''simular'' una consulta SET = NULL , PHPMyAdmin arrojaría un error. Es un misterio: simplemente ejecuta la consulta y todo estará bien.


Primero, la columna en TABLE_NAME debe aceptar NULL , y probablemente ya reconozcas que para tener el value NULL , debes usar

Eg: UPDATE TABLE_NAME SET column_name = NULL Eg: instead of using column_name = ''NULL''. So, in a situation where one use a "selected value" to update a table in database, such as the following very simple example, Part one, Condition of the variable: Checkbox(name = "checkbox") Eg: if not click, $_POST["checkbox"] = "", Eg: if clicked, $_POST["checkbox"] = "1". Now, we must try to make this $_POST["checkbox"] to convert the value "" to NULL and update to the database table. An alternative way that I found is to use echo and assign echo value to a $variable of course, you already know how to use if {} else {}. To save echo value to a $variable, I did the following: Eg: ob_start() Eg: echo <==hint 1: selected value here. Eg: $variable1 = ob_get_contents() Eg: ob_end_clean() Then, you need to do this again, Eg: ob_start() Eg: echo <==hint 2: command line + selected value here. Eg: $variable2 = ob_get_contents() Eg: ob_end_clean() MYSQL will be something like the following: Eg: UPDATE table_name SET Eg: name = ''$name'', Eg: $variable2, Eg: date = ''$date'' Eg: WHERE id = ''$id''; see the trick is to how to make Eg: $variable2 to show either Eg: checkbox = NULL or to show Eg: checkbox = ''1'' Hope this can give you a guide to solve this problem. I think you have enough knowledge to fill in the blanks. Good luck. Additional note: you can do the same for (MYSQL) INSERT INTO


Recuerde mirar si su columna puede ser nula. Puedes hacer eso usando

mysql> desc my_table;

Si su columna no puede ser nula, cuando establece el valor en nulo, será el valor de conversión.

Aquí un ejemplo

mysql> create table example ( age int not null, name varchar(100) not null ); mysql> insert into example values ( null, "without num" ), ( 2 , null ); mysql> select * from example; +-----+-------------+ | age | name | +-----+-------------+ | 0 | without num | | 2 | | +-----+-------------+ 2 rows in set (0.00 sec) mysql> select * from example where age is null or name is null; Empty set (0.00 sec)


Si desea establecer el valor nulo mediante la consulta de actualización, establezca el valor de la columna en NULL (sin comillas) update tablename set columnname = NULL

Sin embargo, si está editando directamente el valor de campo dentro del banco de trabajo mysql, use la combinación de teclas (Esc + del) para insertar el valor nulo en la columna seleccionada


Si tu sigues

UPDATE table SET name = NULL

entonces el nombre es "" no NULO EN MYSQL significa su consulta

SELECT * FROM table WHERE name = NULL no funciona o decepcionarse


Sin sintaxis especial:

CREATE TABLE your_table (some_id int, your_column varchar(100)); INSERT INTO your_table VALUES (1, ''Hello''); UPDATE your_table SET your_column = NULL WHERE some_id = 1; SELECT * FROM your_table WHERE your_column IS NULL; +---------+-------------+ | some_id | your_column | +---------+-------------+ | 1 | NULL | +---------+-------------+ 1 row in set (0.00 sec)


Sospecho que el problema aquí es que las comillas se ingresaron como literales en el valor de su cadena. Puede establecer estas columnas para anular usando:

UPDATE table SET col=NULL WHERE length(col)<3;

Por supuesto, primero debe verificar que estos valores sean de hecho "" con algo como:

SELECT DISTINCT(col) FROM table WHERE length(col)<3;


Use IS lugar de = Esto resolverá la sintaxis de su ejemplo de problema:

UPDATE studentdetails SET contactnumber = 9098979690 WHERE contactnumber IS NULL;


el uso is lugar de =

Ejemplo: Select * from table_name where column is null