Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyciągnij pierwsze X słów (nie tylko znaki) z mySQL

Zdecydowanie chcesz użyć SUBSTRING_INDEX który zwróci pewną liczbę znaków, dopóki nie zostanie osiągnięta określona liczba na podstawie wystąpienia ogranicznika. W Twoim przypadku połączenie wyglądałoby tak:

 SELECT SUBSTRING_INDEX(text_field, ' ', 6) FROM ...

W szczególności zwróci to maksymalnie sześć słów gdzie definiujemy słowo jako zestaw znaków, które nie są spacjami oddzielonymi spacjami.

Uwaga :zwróci interpunkcję dołączoną do ostatniego słowa, co może być pożądane lub nie. Zastąpienie wszelkich znaków interpunkcyjnych na końcu ciągu w PHP byłoby dość proste, ale jeśli chcesz pozostać całkowicie w SQL, myślę, że możesz użyć TRIM . Składnia do tego wyglądałaby mniej więcej tak:

SELECT TRIM(TRAILING ',' FROM SUBSTRING_INDEX(text_field, ' ', 6)) FROM ...

Może istnieć lepsza opcja usunięcia końcowej interpunkcji - ale być może to kolejne pytanie (nadal szukam lepszego rozwiązania niż TRIM).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy można automatycznie utworzyć plik mysqldump, który nie wymusza ograniczeń klucza obcego?

  2. Łączenie się ze zdalną bazą danych z komputera lokalnego za pomocą mysql i PHP

  3. Jak pokazać sortowanie połączenia w MySQL?

  4. Uzyskaj nazwę kolumny zamiast wartości kolumny

  5. Aktualizacja schematu tabeli bez wpływu na dane w Laravel