2011-10-12 41 views
8

¿Cómo se escribe IF EXISTS como se muestra en la consulta siguiente en SQLite? Leí en alguna parte que la cláusula IF no existe en SQLite. ¿Cuál sería una mejor alternativa para esto?SQLite IF Existe la Cláusula

if exists (select username from tbl_stats_assigned where username = 'abc') 
    select 1 as uname 
else 
    select 0 as uname 
+0

Necesitará una tabla que contenga todos los nombres de usuario, ya estén asignados o no (en este caso, una tabla que enumera todos los usuarios). No puede obtener un registro devuelto en un conjunto de resultados para un valor que no existe es alguna tabla en algún lugar de la base de datos. –

+0

Gracias Larry. Aquí, no estoy tratando de recuperar un registro simplemente comprobando si se encuentra una coincidencia. – thinkster

+1

Luego ejecute una instrucción SELECT contra esa tabla en cualquier idioma que esté utilizando para hablar con la base de datos. Verifique el conjunto de resultados de devolución para determinar si tiene una fila o no. Sin fila significa que ningún usuario está en la mesa. –

Respuesta

16

Sólo haces de la manera estándar SQL:

select exists(
    select 1 
    from tbl_stats_assigned 
    where username = 'abc' 
); 

asumiendo por supuesto que su 1 y 0 son en realidad los valores booleanos (que representa SQLite con uno y cero como MySQL).

Eso debería funcionar en cualquier base de datos SQL y algunos incluso tienen optimizaciones especiales para admitir esa expresión idiomática.

+0

¡Gracias que funcionó! – thinkster

Cuestiones relacionadas