MySQL作為一款常用的關系型數據庫,具有很多強大的功能,其中之一就是一行對應多行顯示。
CREATE TABLE person ( id INT PRIMARY KEY, name VARCHAR(50), ages VARCHAR(100) ); INSERT INTO person VALUES(1, 'Tom', '18, 20, 22'); INSERT INTO person VALUES(2, 'Jerry', '21, 23, 25'); INSERT INTO person VALUES(3, 'Lucy', '20, 22'); SELECT id, name, SUBSTRING_INDEX(SUBSTRING_INDEX(ages, ',', numbers.n), ',', -1) age FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) numbers JOIN person ON CHAR_LENGTH(ages) -CHAR_LENGTH(REPLACE(ages, ',', ''))>=numbers.n-1;
以上SQL語句中,使用SUBSTRING_INDEX和CHAR_LENGTH函數從數據庫中獲取多個數據,并使用JOIN和UNION ALL語句實現每行對應多行的效果。
通過這種方法,可有效地實現一行對應多行的顯示效果,讓數據更加清晰、直觀。