[SOLUCIONADO] ¿Cómo hago peticiones sql cuando hay una "@"?

Iniciado por proxy_lainux, Febrero 02, 2017, 03:53:34 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 02, 2017, 03:53:34 AM Ultima modificación: Febrero 02, 2017, 01:46:59 PM por Gabriela
¿Cómo logro hacer una petición sql cuando hay un @?

tengo en una columna de la que me gustaría sacar información, pero hay un problema...cuando lo hago me menciona este error

SQLITE_ERROR] SQL error or missing database (near "@s": syntax error)

trato de llamar un dato, por ejemplo

hola@mundo... pero no me deja

¿Alguien sabe la manera correcta de usar "WHERE hola@mundo" en SQL?

HOLA!!!

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta :
hola@mundo es el nombre de un campo? de un parametro? de una funcion? una cadena de texto?

danos un poco mas de datos.

Que base de datos estas utilizando.

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scouts Team*                                                No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Febrero 02, 2017, 11:13:46 AM #2 Ultima modificación: Febrero 02, 2017, 11:19:14 AM por grep
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
SQLITE_ERROR] SQL error or missing database (near "@s": syntax error)

trato de llamar un dato, por ejemplo

hola@mundo... pero no me deja

¿Alguien sabe la manera correcta de usar "WHERE hola@mundo" en SQL?

¿hola@mundo es el nombre de la columna o es el valor contenido en un registro?

WHERE hola@mundo es un error en la sintaxis de SQLite.

Si hola@mundo es el valor de un registro, entonces una posible consulta sería:

Código: php
SELECT * FROM MyTable WHERE ColumnName = 'hola@mundo';


o

Código: php
SELECT * FROM MyTable WHERE ColumnName LIKE 'hola@mundo';


Por otro lado, si hola@mundo es el nombre de la columna, entonces debes colocar este nombre entre comillas dobles, corchetes o acentos graves.

Cuando el nombre de una tabla o columna tiene únicamente caracteres estándar (esto es, cualquier combinación de caracteres alfanuméricos incluyento el guion bajo "_") y su primer caracter no es un dígito, entonces puedes utilizar ese nombre sin problemas (recordar además que no se permite que una tabla, índice, vista o trigger tenga la palabra "sqlite_" al principio de su nombre ya que SQLite utiliza este patrón para todo internal schema object).
Si una tabla o una columna (estos se conocen genéricamente como Identifiers) contiene espacios, otros caracteres no estándar, o utiliza el nombre de una palabra reservada (keyword), entonces debes colocar este nombre entre comillas dobles (" "), corchetes ([ ]) o acentos graves (ASCII code 96) (` `).

* El mecanismo de quoting con comillas dobles (" ") es el estándar del lenguaje SQL.

* El mecanismo de quoting con corchetes ([ ]) es el que utiliza MS Access y SQL Server.

* El mecanismo de quoting con acentos graves (` `) es el que utiliza MySQL.


Entonces una consulta con la cláusula WHERE y un identificador con carácteres no estándar podría ser:

Código: php

SELECT * FROM MyTable WHERE "hola@mundo" = 'MyValue';


o

Código: php

SELECT * FROM MyTable WHERE "hola@mundo" LIKE 'MyValue';


fuente:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos


El problema se solucionó leyendo la explicación de grep

gracias