SQL - Duda con SQL.

   
Vista:

Duda con SQL.

Publicado por Francisco (1 intervención) el 25/02/2012 21:58:51
Muy buenas tardes, tengo una duda con SQL. Tengo una tabla llamada: tbUsuarios y un campo llamado: NombreUsuario. Necesito una consulta en SQL que me busque un nombre de usuario y si lo encuentra me devuelva 1, y si no lo encuentra me devuelva 0. Soy nuevo en SQL.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda con SQL.

Publicado por julio (1 intervención) el 25/02/2012 22:11:30
proba con esto :

SELECT count(*) FROM tbUsuarios WHERE NombreUsuario = 'TU DATO'

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con SQL.

Publicado por leonardo_josue (880 intervenciones) el 27/02/2012 17:58:57
Creo que la respuesta de julio debería servirte, aunque hay un detalle a considerar, igual y no es relevante pero de cualquier manera se tiene que mencionar. El operador COUNT() regresa el número total de registros que cumplen con la condición, por lo tanto, si existiera un registro que cumpla con la condición te regresará ese número de registros (y no solo 1 o 0). Checa este script de MySQL para ver de lo que estoy hablando:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
mysql> SELECT * FROM tabla;
+------+-------------+
| id   | descripcion |
+------+-------------+
|    1 | uno         |
|    2 | dos         |
|    3 | tres        |
|    4 | uno         |
+------+-------------+
4 rows in set (0.00 sec)
 
mysql> SELECT COUNT(*) existe FROM tabla WHERE descripcion = 'uno';
+--------+
| existe |
+--------+
|      2 |
+--------+
1 row in set (0.00 sec)
 
mysql> SELECT CASE WHEN (COUNT(*) = 0) THEN 0 ELSE 1 END existe
    -> FROM tabla WHERE descripcion = 'uno';
+--------+
| existe |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)
 
mysql> SELECT
    -> CASE WHEN
    -> EXISTS(SELECT id FROM tabla1 T1 WHERE T1.descripcion = 'uno')
    -> THEN 1 ELSE 0 END existe;
+--------+
| existe |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)
 
mysql> SELECT IF(EXISTS(SELECT id
    -> FROM tabla1 T1 WHERE T1.descripcion = 'cuatro'), 1, 0) existe;
+--------+
| existe |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)


La primer consulta corresponde a la respuesta que te dio Julio, observa que el resultado es 2 debido a que existen dos descripciones que cumplen con el criterio de búsqueda. en la segunda consulta aparece una posible solución para este detalle y es utilizar la una sentencia tipo CASE-WHEN.

Los últimos dos casos te muestran otra forma para obtener el mismo resultado, utilizando EXISTS() en lugar de COUNT().

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar