我一直在尋找一種方法將此查詢/ php轉換爲INSERT INTO SELECT,但我無法找到將值添加到查詢的concat部分的方法,任何建議將concat sql字符串轉換爲INSERT INTO SELECT
$query = tep_db_query("SELECT DISTINCT products_attributes.products_id AS products_id, GROUP_CONCAT(DISTINCT 'filter_size_', products_attributes.options_id, '_', filter_options.filter_options_id) AS size FROM products_attributes INNER JOIN filter_options_to_values ON products_attributes.options_id = filter_options_to_values.options_id AND products_attributes.options_values_id = filter_options_to_values.values_id INNER JOIN filter_options ON filter_options_to_values.filter_options_id = filter_options.filter_options_id GROUP BY products_attributes.products_id;");
tep_db_query("TRUNCATE table " . $tableName);
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$array = explode(',', $row['size']);
$count = count($array);
$string = '';
foreach ($array as $a) {
$string .= '1,';
}
$string = rtrim($string, ',');
tep_db_query("INSERT INTO " . $tableName . " (products_id, " . $row['size'] . ") VALUES (" . $row['products_id'] . ", " . $string . ")");
}
這是我努力的INSERT INTO但問題是dynimic的cols大小:
SELECT DISTINCT products_attributes.products_id, filter_options_to_values.filter_options_id, GROUP_CONCAT(DISTINCT 'filter_size_', products_attributes.options_id, '_', filter_options.filter_options_id) AS size, GROUP_CONCAT(DISTINCT '1') AS vals FROM products_attributes INNER JOIN filter_options_to_values ON products_attributes.options_id = filter_options_to_values.options_id AND products_attributes.options_values_id = filter_options_to_values.values_id INNER JOIN filter_options ON filter_options_to_values.filter_options_id = filter_options.filter_options_id WHERE products_attributes.options_quantity > 0 GROUP BY products_attributes.products_id
這是架構:
CREATE TABLE
products_temp (
products_id int(11) NOT NULL default '0',
final_price decimal(15,4) default NULL,
decimal(15,4) default NULL,
special_price manufacturers_id int(11) default NULL,
efv4 int(11) default NULL,
efv5 int(11) default NULL,
efv10 int(11) default NULL,
products_date_added datetime default NULL,
filter_size_2_1 int(11) default NULL,
filter_size_2_2 int(11) default NULL,
filter_size_2_3 int(11) default NULL,
filter_size_2_4 int(11) default NULL,
filter_size_2_5 int(11) default NULL,
filter_size_2_6 int(11) default NULL,
filter_size_2_7 int(11) default NULL,
filter_size_2_8 int(11) default NULL,
filter_size_2_9 int(11) default NULL,
filter_size_2_10 int(11) default NULL,
filter_size_2_11 int(11) default NULL,
filter_size_2_12 int(11) default NULL,
filter_size_2_57 int(11) default NULL,
filter_size_2_58 int(11) default NULL,
filter_size_2_59 int(11) default NULL,
filter_size_2_60 int(11) default NULL,
filter_size_2_62 int(11) default NULL,
filter_size_2_63 int(11) default NULL,
filter_size_2_293 int(11) default NULL,
filter_size_2_294 int(11) default NULL,
filter_size_2_295 int(11) default NULL,
filter_size_2_296 int(11) default NULL,
filter_size_9_20 int(11) default NULL,
filter_size_9_21 int(11) default NULL,
filter_size_9_24 int(11) default NULL,
filter_size_9_25 int(11) default NULL,
filter_size_9_26 int(11) default NULL,
filter_size_9_27 int(11) default NULL,
filter_size_9_28 int(11) default NULL,
filter_size_9_29 int(11) default NULL,
filter_size_9_30 int(11) default NULL,
filter_size_9_31 int(11) default NULL,
filter_size_9_3 2 int(11) default NULL,
filter_size_9_33 int(11) default NULL,
filter_size_9_34 int(11) default NULL,
filter_size_9_35 int(11) default NULL,
filter_size_9_36 int(11) default NULL,
filter_size_9_37 int(11) default NULL,
filter_size_9_38 int(11) default NULL,
filter_size_9_39 int(11) default NULL,
filter_size_9_40 int(11) default NULL,
filter_size_9_41 int(11) default NULL,
filter_size_9_42 int(11) default NULL,
filter_size_9_43 int(11) default NULL,
filter_size_9_44 int(11) default NULL,
filter_size_9_45 int(11) default NULL,
filter_size_9_46 int(11) default NULL,
filter_size_9_47 int(11) default NULL,
filter_size_9_48 int(11) default NULL,
filter_size_9_49 int(11) default NULL,
filter_size_9_50 int(11) default NULL,
filter_size_9_51 int(11) default NULL,
filter_size_9_52 int(11) default NULL,
filter_size_9_53 int(11) default NULL,
filter_size_9_54 int(11) default NULL,
filter_size_9_55 int(11) default NULL,
filter_size_9_56 int(11) default NULL, PRIMARY KEY (
products_id ) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
的代碼是一點點不清楚。你能提供一些樣本數據和你想要的結果嗎?它會幫助我們幫助你。 – Mureinik