Перейти к содержимому


Все значения поля.


Сообщений в теме: 9

#1 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 03 Июль 2012 - 12:23

Здравствуйте уважаемые программисты.

Прошу подсказки, как можно загнать в массив все значения одного из полей?

А именно есть таблица с полями: поле1, поле2, поле3.

Соответственно в этой таблице очень много записей, около миллиона. Но мы знаем что поле2 может содержать всего несколько значений.

Вот и вопрос, как занести в массив все значения поле2 из миллиона строк?

#2 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 03 Июль 2012 - 12:37

Попробовал следующим способом:
$sqlQuery = "SELECT f1293 as operation FROM ".DATA_TABLE."106";
	  $result = mysql_query($sqlQuery);
	  $row = mysql_fetch_array($result);
	  $data = array($row['operation']);
$res = array_unique($data);
print_r($res);

Результат - всего одно значение в поле f1293.

#3 Гость_Roman_*

  • Гости

Отправлено 03 Июль 2012 - 13:08

Используйте ключевое слово DISTINCT в запросе.
$sqlQuery = "SELECT DISTINCT f1293 as operation FROM ".DATA_TABLE."106";
$result = mysql_query($sqlQuery);
while ($row = mysql_fetch_array($result)) {
	$data[] = $row['f1293'];
}
print_r($data);
Запрос вернёт только уникальные значения поля f1293.

Сообщение отредактировал Roman: 03 Июль 2012 - 13:14


#4 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 03 Июль 2012 - 13:13

Уххх!!! спасибо ОГРОМНЕЙШЕЕ!

#5 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 03 Июль 2012 - 13:15

Хм... Данный код возвращает:
Array ( [0] => TKTT [operation] => TKTT )


#6 Гость_Roman_*

  • Гости

Отправлено 03 Июль 2012 - 13:18

Проверьте ещё раз, я отредактировал вычисление, возможно, что Вы взяли ещё неотредактированный код.

#7 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 03 Июль 2012 - 13:19

Ага, теперь возвратило следующее:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => )


#8 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 03 Июль 2012 - 13:21

Изменил запрос на такой:
$sqlQuery = "SELECT DISTINCT f1293 as operation FROM ".DATA_TABLE."106";
$result = mysql_query($sqlQuery);
while ($row = mysql_fetch_array($result)) {
	    $data[] = $row['operation'];
}
print_r($data);

Все супер!!!

#9 Гость_Roman_*

  • Гости

Отправлено 03 Июль 2012 - 13:22

Да, я не обратил внимание, что полю присвоен псевдоним.

#10 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 03 Июль 2012 - 13:47

Т. е. получается что по теории запрос резко обрабатывается и в итоге выдавал $row = крайнему элементу. А с помощью while мы как бы сделали цикл выполнения массива... Интересно... Почерпну для себя. Спасибо еще раз!





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных