Php 更新MySQL中特定行的concat select
我正试图用'year\u from'和'year\u to'数据更新'model\u name',但我有6k个模型具有随机模型id,因此我想更新与模型id匹配的模型名称。如果我删除'where model\u id=2'行,它将用最小值和最大值更新整个表。如何修改此查询Php 更新MySQL中特定行的concat select,php,mysql,sql-update,Php,Mysql,Sql Update,我正试图用'year\u from'和'year\u to'数据更新'model\u name',但我有6k个模型具有随机模型id,因此我想更新与模型id匹配的模型名称。如果我删除'where model\u id=2'行,它将用最小值和最大值更新整个表。如何修改此查询 UPDATE lc_vehicles2 SET model_name = concat(model_name, ' (', ( SELECT MIN(year_from) FROM (SELECT * FROM lc_vehi
UPDATE lc_vehicles2
SET model_name = concat(model_name, ' (', (
SELECT MIN(year_from)
FROM (SELECT * FROM lc_vehicles2) AS VEHICLES
WHERE model_id = 2),'-', (
SELECT MAX(year_to)
FROM (SELECT * FROM lc_vehicles2) AS VEHICLES
WHERE model_id = 2),')')
表结构:
brand_id | brand_name | model_id | model_name | year_from | year_to
502 | audi | 2288 | A6 | 1999.06 | 2006.01
145 | volvo | 2154 | S60 | 2006.06 | 2012.12
尝试以上查询。使用:
WHERE model\u id=?
或WHERE model\u id=:id
,(取决于您的喜好)。或者我误解了你的问题?请在你的问题中分享表格结构好吗?我的意思是我想让它升级型号名称与型号id一致。我有6k个型号,型号id为随机数,每个型号都有随机数的副本。我想知道如何在不需要每次手动输入模型id的情况下自动解决这个问题。看到了吗!非常感谢你。只需编辑SELECT MAX以从“年份到”中进行选择,以防其他人找到此答案。
UPDATE lc_vehicles2 VH
INNER JOIN
(
SELECT MIN(year_from) MIN_YEAR,model_id FROM lc_vehicles2 GROUP BY model_id
)MIN_TABLE ON MIN_TABLE.model_id=VH.model_id
INNER JOIN
(
SELECT MAX(year_to) MAX_YEAR,model_id FROM lc_vehicles2 GROUP BY model_id
)MAX_TABLE ON MAX_TABLE.model_id=VH.model_id
SET model_name = CONCAT(VH.model_name,'(',MIN_TABLE.MIN_YEAR,'-',MAX_TABLE.MAX_YEAR,')')