#php #mysql
#php #mysql
Вопрос:
У меня есть сценарий, в котором при обновлении записи запрос должен обновлять max(id_inc) 1 из таблицы ‘Process’. Затем необходимо обновить другое поле inv_id_inc в той же таблице ‘Process’ с помощью простой функции concat (ВЫБЕРИТЕ CONCAT(max(inv_id) , ‘/’, 16). То есть он должен обновляться как 1/16, затем 2/16, затем 3/16 и т.д. 16 — это краткая форма текущего года. Я не уверен, смогу ли я достичь этого одним запросом. В настоящее время я пробовал с 2 запросами. Первый запрос обновляет max(id_inc) 1, а второй запрос объединяет CONCAT(max(inv_id) , ‘/’, 16 . Я не уверен, правильно ли я делаю.
================================
tender_id | id_inc | inv_id_inc
================================
200 | 1 | 1/16
300 | 2 | 2/16
Мой первый запрос приведен ниже:.
update process
set inv_id=
SELECT MAX( inv_id ) 1 FROM process where tender_id=200;
Мой второй запрос ниже:
update process t
join (SELECT CONCAT(max(inv_id) , '/', 16) as inv_id_inc
from process ) t1
set t.inv_id_inc=t1.inv_id_inc WHERE tender_id='200'";
Он не обновляется. Кто-нибудь может предложить мне решение, пожалуйста.?
Теперь он работает. Я изменил 2 запроса. Обновленные запросы приведены ниже:
ПЕРВЫЙ ЗАПРОС:
UPDATE process set inv_id = ((SELECT inv_id FROM (SELECT MAX(inv_id) AS inv_id FROM process)
AS inv_id_new) 1) WHERE tender_id='200'
ВТОРОЙ ЗАПРОС:
update process t
join (SELECT CONCAT(max(inv_id), '/', 16) as inv_id_inc
from process ) t1
set t.inv_id_inc=t1.inv_id_inc WHERE tender_id='200'
Есть ли лучшее решение?
Комментарии:
1. Используете ли вы
PHP
где-нибудь?2. это php-приложение. Я просто пытаюсь сделать запрос.
3. Я думаю, мой вопрос не совсем ясен. 🙂
4. Кто-нибудь может мне помочь в этом?
5. возможно, вам следует описать, чего вы пытаетесь достичь! У меня такое чувство, что вы используете плохую технику или неправильную терминологию. когда я обновляю запись , обновляю или вставляю? и все это звучит для меня как операция запуска таблицы!