sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Opdel kommasepareret liste i flere rækker

I MySQL kan dette opnås som nedenfor

SELECT id, length FROM vehicles WHERE id IN ( 117, 148, 126) 

+---------------+
| id  | length  |
+---------------+
| 117 | 25      |
| 126 | 8       |
| 148 | 10      |
+---------------+

SELECT id,vehicle_ids FROM load_plan_configs WHERE load_plan_configs.id =42

+---------------------+
| id  | vehicle_ids   |
+---------------------+
| 42  | 117, 148, 126 |
+---------------------+

Brug nu forespørgslen nedenfor for at få længden af ​​kommaseparerede vehicle_ids.

Output

SELECT length 
FROM   vehicles, load_plan_configs   
WHERE  load_plan_configs.id = 42 AND FIND_IN_SET(
       vehicles.id, load_plan_configs.vehicle_ids
)

+---------+
| length  |
+---------+
| 25      |
| 8       |
| 10      |
+---------+

For flere oplysninger besøg http://amitbrothers .blogspot.in/2014/03/mysql-split-comma-separated-list-into.html



  1. WAMP Kan ikke få adgang på lokalt netværk 403 Forbudt

  2. SQL Server Subquery returnerede mere end 1 værdi. Dette er ikke tilladt, når underforespørgslen følger efter =, !=, <, <=,>,>=

  3. LongOpsWatcher i SQL Dev

  4. Er det bedre at oprette et indeks, før du fylder en tabel med data, eller efter at dataene er på plads?