Как выбрать слова в строке, разделенной запятыми в поле MySQL? - PullRequest
2 голосов
/ 25 ноября 2011

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

Примером этого может служить поле, содержащее информацию: «Боб, Сью, Адам, Тим, Хэнк» Моя цельсостоит в том, чтобы выбрать каждое имя, используя запятые для определения каждого отдельного имени, и сохранить каждое имя в переменной или, более эффективно, в массиве, а затем использовать команду «for» или аналогичную для отображения соответствующей информации о каждом человеке.

Я использую команды MySQLi, которые, как мне сказали, плохо документированы;однако, это то, что моя книга проинструктировала меня использовать.

Ответы [ 5 ]

4 голосов
/ 25 ноября 2011

Вы можете использовать find_in_set в MySQL:

предположим, что поле mysql "имя пользователя" имеет следующие значения: "Боб, Сью, Адам, Тим, Хэнк"

$name="bob";

QUERY is

  select * from TABLE_NAME where FIND_IN_SET('$name', username);
2 голосов
/ 25 ноября 2011

Функция explode, предложенная другими ответами, будет работать нормально, но было бы более элегантно, если бы вы хранили эти имена отдельно во второй таблице.

Итак, где у вас сейчас есть:

  • main: id, names

Я предлагаю:

  • main: id
  • names: main_id, name

Затем можно получить имена, принадлежащие одной строке, с помощью запроса, например:

SELECT name FROM names WHERE id = $id

Чтобы добавить имя, принадлежащее определенному идентификатору, используйте:

INSERT INTO TABLE names (main_id, name) VALUES ($id, "$newname")
0 голосов
/ 25 ноября 2011

$arrayList = explode(',', "Bob,Sue,Adam,Tim,Hank");

оформить заказ http://php.net/manual/en/function.explode.php

0 голосов
/ 25 ноября 2011

Вы хотите ВЗРЫВ !

Например:

$persons= explode(",", "Bob,Sue,Adam,Tim,Hank");
0 голосов
/ 25 ноября 2011
  1. выберите поле
  2. $ names = explode (',', $ thefield);

Теперь у вас есть массив значений

...