Нужно ли какое-то время l oop для вставки в зависимости от условий? - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу вставить значения в столбец на основе следующих условий. Имя столбца, который нужно вставить, - project_renewal.

Если в коде проекта есть десятичная дробь, вставьте числа после десятичной дроби.

SELECT substring_index(project_code, '.', -1)
FROM projects where
project_code like '%.%'

Если десятичной дроби нет, введите 0.

SELECT project_code
FROM projects where
project_code not like '%.%'

Порядок вставки должен совпадать с порядком чтения значений из кода проекта.

Ответы [ 2 ]

1 голос
/ 05 февраля 2020
 INSERT IGNORE INTO outtable (code)
 SELECT IF (project_code LIKE '%.%'
     , substring_index(project_code, '.', -1)
     , 0)
 FROM projects
0 голосов
/ 05 февраля 2020

Вы можете сделать это так:

INSERT INTO tablename(project_renewal)
SELECT trim(trailing '0' from substring_index(project_code, '.', -1)) + 0
FROM projects

См. Демоверсию . Если вы хотите обновить столбец в той же таблице, сделайте это с помощью оператора UPDATE:

UPDATE projects
SET project_renewal = trim(trailing '0' from substring_index(project_code, '.', -1)) + 0

См. demo .

...