Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新MySQL中特定行的concat select_Php_Mysql_Sql Update - Fatal编程技术网

Php 更新MySQL中特定行的concat select

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

我正试图用'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_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,')')