Cuando una consulta SQL no devuelve nada, ¿cómo puedo decirle al shell que devuelva un "falso"?

Cuando una consulta SQL no devuelve nada, ¿cómo puedo decirle al shell que devuelva un "falso"?

Es posible que esto no tenga nada que ver con SQL en particular, porque estoy seguro de que otros comandos también lo harán.

En este caso, envío una consulta a través del shell, y si la consulta no coincide con ninguna tabla, literalmente no se devolverá nada, ni siquiera un retorno de carro.

¿Cómo puedo programar mi shell para que, en tal caso, se devuelva 0o falseen su lugar?

Aquí está mi comando de muestra que está generando mi problema:

mysql -u Popey --password='Misses Jono' -s -N --disable-column-names -e 
"select term_id from shuttleworth.wp_terms where name = 'nonExistentName' LIMIT 1;"

Respuesta1

-vLa opción para el modo detallado debería brindarle más resultados. No puedo intentar esto ahora porque no tengo un servidor SQL en ejecución.

Respuesta2

Mi prima me ofreció esta solución. Lo probé y funciona.

Linea sola:

response=$(mysql -u popey --password='Misses Jono' -s -N --disable-column-names -e "select term_id from shuttleworth.wp_terms where name = 'non-existent-name' LIMIT 1;") && if [ -z "$response" ]; then echo false; else echo $response; fi`

Desglosado:

response=
    $(mysql 
      -u popey 
      --password='Misses Jono' 
      -s -N --disable-column-names 
      -e 
          "SELECT term_id 
           FROM shuttleworth.wp_terms
           WHERE name = 'non-existent-name' 
           LIMIT 1;"
      ) 
&& if [ -z "$response" ]; 
   then echo false; 
   else echo $response; 
   fi

información relacionada