Есть ли способ разделить идентификаторы таблицы для определенного типа данных c в таблице в mariadb / mysql - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть требование иметь данные в таблице, в которой идентификатор (автоинкремент) должен быть разделен для определенного типа данных c.

Типы, например - Тип1, Тип2, Тип 3 и Тип 4

Type   | Offset
Type1  | 1 -100
Type2  | 101-200
Type3  | 201-300
Type4  | 302-400

Если данные вставляются в таблицу, определенную ниже, то в зависимости от типа следует установить идентификатор и автоматически увеличивать его.

Например,

Capability_id  |  Capability_name | type
---------------------------------------------
1              |  Type1_cap1      | Type1
2              |  Type1_cap2      | Type1
101            |  Type2_cap1      | Type2
3              |  Type1_cap3      | Type1

Есть ли способ добиться этого в mariadb / mysql?

1 Ответ

0 голосов
/ 07 февраля 2020

Если type был предопределен для фиксированного диапазона идентификаторов, я думаю, вы можете сделать что-то вроде этого:

SELECT capability_id,CASE 
       WHEN capability_id BETWEEN 1 AND 100 THEN CONCAT("Type1_cap",capability_id)
       WHEN capability_id BETWEEN 101 AND 200 THEN CONCAT("Type2_cap",capability_id-100)
       WHEN capability_id BETWEEN 201 AND 300 THEN CONCAT("Type3_cap",capability_id-200)
       WHEN capability_id BETWEEN 301 AND 400 THEN CONCAT("Type4_cap",capability_id-300)
END as `Capability_name`
FROM mytable;

Fiddle здесь: https://www.db-fiddle.com/f/bG3mVwoNX66NBEgqLxX7Ya/0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...