Mencipta jadual pangsi dinamik dengan nama lajur integer dalam MySQL menimbulkan sedikit cabaran. Semasa menjalankan pertanyaan yang disediakan, anda mungkin menghadapi ralat jika nilai user_id ialah integer. Untuk menyelesaikan isu ini, kita perlu membalut nilai user_id dalam tanda belakang (`).
Pertanyaan SQL yang dilaraskan kelihatan seperti ini:
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(case when user_id = ''', user_id, ''' then score end) AS `', user_id, '`' ) ) INTO @sql FROM measure2; SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' FROM measure2 GROUP BY inspection_date'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
Pengubahsuaian utama di sini ialah penambahan tanda belakang sekitar nilai user_id dalam pernyataan GROUP_CONCAT. Dengan melakukan ini, kami memastikan bahawa nilai user_id dianggap sebagai rentetan dan bukannya nama lajur.
SQL Fiddle Demo: https://sqlfiddle.com/#!2/eab24/ 4
Kini, walaupun dengan nilai user_id integer, jadual pangsi dinamik akan dijana berjaya.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Jadual Pangsi Dinamik dalam MySQL dengan Nama Lajur Integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!