Conditionele kolommen (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

In een uitgebreide select-query in een sproc van een paar honderd regels, zou ik sommige kolommen graag conditioneel willen incorporeren, afhankelijk van een input-parameter. En dat kan:

  • CASE: select case-queries of subqueries
  • IF: Select if-subqueries
  • union queries met when-statements (vaak rommelig)

Voorbeeld

CREATE DEFINER=`root`@`localhost` PROCEDURE `cond_test`(in markt tinytext)
BEGIN

select if
(
    markt="EN",    -- Conditie
    "English!",    -- When true
    "Not English"  -- When false
) as uitkomst_1;

select case

when markt="DE" then "DE!"
when markt="HU" then "Magyar!"

end as uitkomst_2;

END

Voorbeeld CASE-subquery

Zie Nesten van queries (MySQL)#CASE-statement binnen een select-query

Zie ook

Bronnen