Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод неповторяющихся значений
 
 автор: motl   (27.12.2006 в 03:18)   письмо автору
 
 

Помогите написать запрос. У меня в таблице содержатся строки типа "10,11,12,12", и нужно вывести только цыфры, которые не повторяются, то есть 10 и 11.

   
 
 автор: cheops   (27.12.2006 в 03:26)   письмо автору
 
   для: motl   (27.12.2006 в 03:18)
 

Не очень понятно, все цифры хранятся в одном поле текстового типа?

   
 
 автор: elenaki   (27.12.2006 в 19:49)   письмо автору
 
   для: cheops   (27.12.2006 в 03:26)
 

а первое 12 тоже не повторяется, повторяется второе :)

   
 
 автор: motl   (27.12.2006 в 20:56)   письмо автору
 
   для: cheops   (27.12.2006 в 03:26)
 

Цифры хранятся в разных полях текстового типа.

   
 
 автор: cheops   (27.12.2006 в 22:24)   письмо автору
 
   для: motl   (27.12.2006 в 20:56)
 

Тогда не очень понятно, приведите структуру таблицы? Каждое поле хранит только одну цифру?

   
 
 автор: motl   (27.12.2006 в 22:58)   письмо автору
 
   для: cheops   (27.12.2006 в 22:24)
 

Каждое поле хранит только одну цифру

   
 
 автор: jbs   (28.12.2006 в 00:02)   письмо автору
 
   для: motl   (27.12.2006 в 03:18)
 

SELECT [STRAIGHT_JOIN] [DISTINCT | ALL] select_expression,...
[FROM tables... [WHERE where_definition] [GROUP BY column,...]
[ORDER BY column [ASC | DESC], ...] HAVING full_where_definition
[LIMIT [offset,] rows] [PROCEDURE procedure_name]]
[INTO OUTFILE 'file_name'... ]

   
 
 автор: elenaki   (28.12.2006 в 10:18)   письмо автору
 
   для: jbs   (28.12.2006 в 00:02)
 

DISTINCT выведет 10, 11, 12 (один раз), а человеку надо только 10,11

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

   
 
 автор: motl   (28.12.2006 в 21:12)   письмо автору
 
   для: elenaki   (28.12.2006 в 10:18)
 

Вот такой получился код, с использованием функции array_count_values():


<?
$res
="SELECT num FROM data";
$result=mysql_query($res);

$res_array = array();

while(
$row mysql_fetch_array($result)){
$res_array[]=$row['num'];
}

$ac array_count_values ($res_array);

while(list(
$element$number) = each$ac)){
if(
$number==1){
echo 
$element."<br>";
}}

?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования