Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Mengembalikan Posisi Item Daftar di MySQL

Di MySQL, Anda dapat menggunakan FIND_IN_SET() fungsi untuk mengembalikan indeks item daftar yang diberikan dalam daftar string (misalnya 'item1, item2, item3,…').

Fungsi membutuhkan dua argumen; string untuk ditemukan, dan daftar untuk dicari.

Sintaksnya seperti ini:

FIND_IN_SET(str,strlist)

Dimana str adalah string yang Anda cari, dan strlist adalah daftar string yang harus dicari.

Contoh

Ini contohnya:

SELECT FIND_IN_SET('Dog', 'Cat,Dog,Horse') AS 'Result';

Hasil:

+--------+
| Result |
+--------+
|      2 |
+--------+

Ini mengembalikan 2 karena itu posisi string Dog dalam daftar string.

Perhatikan bahwa hanya indeks kejadian pertama yang dikembalikan. Jadi jika ada kejadian lain Dog setelah yang pertama, kami masih mendapatkan hasil yang sama:

SELECT FIND_IN_SET('Dog', 'Cat,Dog,Horse,Dog') AS 'Result';

Hasil:

+--------+
| Result |
+--------+
|      2 |
+--------+

Tidak Ada Yang Cocok

Ketika string tidak ditemukan, hasil dari 0 dikembalikan:

SELECT FIND_IN_SET('Lizard', 'Cat,Dog,Horse') AS 'Result';

Hasil:

+--------+
| Result |
+--------+
|      0 |
+--------+

Bagaimana jika Argumen Pertama berisi Koma?

Fungsi tidak akan mengembalikan hasil positif jika argumen pertama berisi koma.

Ini contohnya:

SELECT FIND_IN_SET('Cat,Dog', 'Cat,Dog,Horse') AS 'Result';

Hasil:

+--------+
| Result |
+--------+
|      0 |
+--------+

Dalam contoh ini, orang mungkin mengharapkannya mengembalikan hasil positif (mengingat Cat,Dog sebenarnya ada dalam daftar), namun, koma digunakan sebagai pemisah dalam daftar, dan oleh karena itu, pencocokan string tidak berfungsi.

Lihat juga Cara Mengembalikan Posisi Argumen dalam Daftar Argumen dengan menggunakan FIELD() fungsi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memasukkan objek datetime.datetime Python ke MySQL

  2. Cara Mengaktifkan Log Permintaan Lambat MySQL di MySQL

  3. Koneksi MySQL tidak berfungsi:2002 Tidak ada file atau direktori seperti itu

  4. MySQL gagal pada:mysql ERROR 1524 (HY000):Plugin 'auth_socket' tidak dimuat

  5. Bisakah Anda menambahkan pernyataan if di ORDER BY?