Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - Вземете първите 3 стойности, разделени със запетая

Можете да използвате SUBSTRING_INDEX два пъти, вторият с параметър -1:

SELECT
  'aaaaa, bbbbb, ccccc',
  SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 1) AS column_one,
  SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2), ',', -1) AS column_two,
  SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 3), ',', -1) AS column_three

Ако параметърът е отрицателен, се връща всичко вдясно от крайния разделител (като се брои отдясно). Напр.

  • SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2) ще върне aaaaa, bbbbb
  • SUBSTRING_INDEX( aaaaa, bbbbb, ',', -1) след това ще върне bbbbb

Може също да искате да използвате ', ' като разделител или ОТРЕЖАВАНЕ резултата.

Моля, вижте цигулка тук .

Редактиране

Ако искате да разгледате низове, които може да имат по-малко от три стойности, можете да използвате нещо подобно:

SELECT
  s,
  SUBSTRING_INDEX(s, ',', 1) AS column_one,
  CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>0
       THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 2), ',', -1)
       ELSE NULL END AS column_two,
  CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>1
       THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 3), ',', -1)
       ELSE NULL END AS column_three
FROM
  strings

Моля, вижте цигулка тук .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверете дали PHP е компилиран --with-mysql

  2. Как мога да създам индекс на подниз на колона?

  3. Проблем при конфигуриране на MySql с въздушен поток на apache в Hadoop

  4. MySQL няма да се изключи:Спиране на сървъра:ГРЕШКА! PID файлът на MySQL сървъра не може да бъде намерен!

  5. Добавете много данни с известен интервал от време в Java