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

Разликата между FIELD() и FIND_IN_SET() в MySQL

MySQL включва FIELD() функция и FIND_IN_SET() функция, която и двете връщат позицията на низ в списък. Тези функции обаче работят малко по-различно една спрямо друга.

Основната разлика между тези две функции е следната:

  • FIND_IN_SET() връща индексната позиция на низ в списък с низове.
  • FIELD() връща индексната позиция на низ в списък с аргументи.

Така една функция търси списък с низове , а другата функция търси списък с аргументи .

Синтаксис

Първо нека разгледаме синтаксиса на двете функции:

ПОЛЕ()

Синтаксисът за FIELD() функцията е така:

FIELD(str,str1,str2,str3,...)

Това се състои от първоначален аргумент, последван от множество последващи аргументи. Следващите аргументи са това, което се търси – колкото и да има много от тях.

FIND_IN_SET()

Синтаксисът за FIND_IN_SET() функцията е така:

FIND_IN_SET(str,strlist)

Това се състои от начален аргумент, последван от още един аргумент. Вторият аргумент съдържа списък с низове, които трябва да се търсят.

Примери

ПОЛЕ()

Ето пример за FIELD() функция в действие:

SELECT FIELD('horse', 'Cat','Dog','Horse') AS 'Result';

Резултат:

+--------+
| Result |
+--------+
|      3 |
+--------+

FIND_IN_SET()

И ето как FIND_IN_SET() функция ще бъде конструирана за получаване на същия резултат:

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

Резултат:

+--------+
| Result |
+--------+
|      3 |
+--------+


  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

  2. Безопасно ли е да съхранявате потребителски имена и пароли в базата данни?

  3. Ефективно наблюдение на MySQL с табла за управление на SCUMM:Част първа

  4. ограничение на подзаявките на mySQL

  5. Как да показвам UTF-8 символи в phpMyAdmin?