Cómo poner SI la instrucción en la consulta de MySQL

Tengo una consulta que es simplemente la selección de 3 tablas.

  1. seleccione a partir de las observaciones de la tabla por todos los comentarios en un artículo

  2. seleccione una de id de usuario tabla para saber qué tipo de usuario es

  3. SI el usuario es un tipo de búsqueda en una tabla…de lo contrario buscar otra tabla para la información final.

Cómo se podría ir sobre esto? Soy un poco nuevo en MySQL cosas, así que estoy totalmente agradecemos su paciencia!

PS – dime si esto no es claro…

Gracias!

2 Kommentare

  1. 2

    OK, Así que digamos que el tipo de condición de es –
    Si el usuario de tipo ‘foo’ de búsqueda de la tabla ‘foovalues’ else tabla de búsqueda de ‘finalvalues’….
    Suponiendo que la tabla estructuras son como sigue

    Comentarios
    CommentID
    UserID
    ArticleID

    Usuarios
    UserID
    UserType

     Declare TestUserType varchar(3);
    
     select * from Comments where ArticleID = <inputid>; //Returns the comments 
    
     select TestUserType = UserType from Users where UserID = <inputuser>; //Returns the usertype for a user and assigns it to a variable
    
     if TestUserType = 'foo' 
       begin 
        select * from FooValues;
       end
     else
       begin 
        select * from FinalValues;
       end 

    Descargo de responsabilidad: La parte anterior de SQL debe trabajar en mySQL, pero ha sido un tiempo desde que he trabajado en ese DB y no tengo acceso ahora mismo por lo que el SQL anterior pueden surgir errores de sintaxis.

    Usted puede poner el SQL en un procedimiento almacenado, así como si usted está haciendo que mySQL tiene esta cosa acerca de delimitadores posible que desee buscar – me escribió en su blog acerca de ello aquí

  2. 1

    No voy a poner a todos en una sola consulta. El código es mucho más legible si se rompe la operación de abajo a pasos más pequeños.

    Si el rendimiento no es una preocupación, usted podría conseguir el tipo de usuario primero y luego ejecutar otra consulta, dependiendo del tipo.

    De una manera más correcta, usted debe considerar el uso de un procedimiento almacenado.

    • hmm, bueno por lo que básicamente oyu están diciendo a nido de la sub-consultas?
    • Estoy de acuerdo de uso de la lógica de programación, no de mysql lógica.
    • En realidad, eso no era lo que yo estaba diciendo, que yo sepa. Echa un vistazo Nikhil la respuesta. Un procedimiento almacenado como eso era lo que yo quería decir.
    • El rendimiento que ignora la opción significaba que usted debe hacer dos separar las consultas SQL de su subyacente programa, comprobando el tipo de usuario antes de la segunda consulta.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein