¿Cuál es la sintaxis SQL correcta para insertar un valor con un apóstrofe?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
Sigo recibiendo un error ya que creo que el apóstrofe después de O es la etiqueta final para el valor.
sql
sql-update
sql-insert
leora
fuente
fuente
Respuestas:
Escape del apóstrofe (es decir, duplique el carácter de comillas simples) en su SQL:
Lo mismo se aplica a las consultas SELECT:
El apóstrofe, o comilla simple, es un carácter especial en SQL que especifica el comienzo y el final de los datos de cadena. Esto significa que para usarlo como parte de sus datos de cadena literal, necesita
escape
el carácter especial. Con una sola cotización, esto se logra duplicando su cotización. (Dos caracteres de comillas simples, no comillas dobles en lugar de comillas simples).Nota : Solo debe preocuparse por este problema cuando edite manualmente los datos a través de una interfaz SQL sin procesar, ya que escribir consultas fuera del desarrollo y las pruebas debería ser algo raro. En el código hay técnicas y marcos (dependiendo de su pila) que se encargan de escapar caracteres especiales, inyección SQL , etc.
fuente
Solo tienes que duplicar las comillas simples ...
fuente
Necesitas escapar del apóstrofe. En T-SQL esto es con un doble apóstrofe, por lo que su
insert
declaración se convierte en:fuente
Values
debe estar encerrado entre llaves (que luego tiene la misma respuesta que la de @JustinNiessner)Porque se utiliza una comilla simple para indicar el inicio y el final de una cadena; Necesitas escapar de ella.
La respuesta corta es usar dos comillas simples,
''
para que una base de datos SQL almacene el valor como'
.Mire el uso de REPLACE para desinfectar los valores entrantes:
Desea verificar
''''
y reemplazarlos si existen en la cadena con el''''''
fin de escapar de la única comilla simple.fuente
eduffy tuvo una buena idea . Simplemente lo entendió al revés en su ejemplo de código. Ya sea en JavaScript o en SQLite, puede reemplazar el apóstrofe con el símbolo de acento.
Él (accidentalmente estoy seguro) colocó el símbolo de acento como delimitador de la cadena en lugar de reemplazar el apóstrofe en O'Brian. De hecho, esta es una solución terriblemente simple para la mayoría de los casos.
fuente
El carácter del apóstrofe se puede insertar llamando a la función CHAR con el valor de búsqueda de la tabla ASCII del apóstrofe , 39. Los valores de cadena se pueden concatenar junto con un operador de concatenación .
fuente
El siguiente SQL ilustra esta funcionalidad.
Resultados
fuente
use comillas dobles alrededor de los valores.
fuente
He said, "Don't!"
uso de comillas simples y / o comillas dobles, que se puede hacer:'He said, "Don''t!"'
o"He said, ""Don't!"""
. Al agregar una nueva respuesta a una pregunta establecida con respuestas aceptadas, debe proporcionar información nueva y completa. Usar comillas dobles es nuevo, pero limitado a unos pocos DBMS; debe esforzarse por identificar al menos uno de los que sí los acepta.Use una tecla de retroceso (en la tecla ~) en su lugar;
fuente