sql >> Databáze >  >> RDS >> Mysql

Mapování vybrané hodnoty v MySQL

Měli byste změnit datovou strukturu vašich aktuálních tabulek. Ale pro vaši aktuální datovou strukturu můžete použít tento záludný dotaz (za předpokladu, že vzor table_1.choice je vždy Item XX ):

SELECT t1.id, t2.rid, t1.qid, t1.choice, t2.question
  FROM Table1 t1
  JOIN Table2 t2
    ON RIGHT(t1.choice, LENGTH(t1.choice) - 5) 
     = LEFT(t2.question, LOCATE('.',t2.question) - 1);

Výstup:

| ID |  RID |  QID |  CHOICE |        QUESTION |
|----|------|------|---------|-----------------|
| 11 | 1001 | 2020 |  Item 1 |  1.I love apple |
| 12 | 1002 | 2020 |  Item 2 | 2.I love orange |
| 13 | 1003 | 2020 | Item 14 | 14.I hate lemon |

Viz tento SQLFiddle



  1. mysql dotaz k nalezení všech možných podobných kombinací začínajících a končících (zjednodušený duplikát)

  2. Mohu získat zpět výchozí hodnoty pro názvy sloupců v tabulce MySQL?

  3. Pomalý dotaz MySQL - Čekání na zámek mezipaměti dotazů

  4. Měli by vývojáři PHP používat uložené procedury MySQL?