Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Alexander Babich
Статус: Профессор
Рейтинг: 32
∙ повысить рейтинг »
solowey
Статус: Профессионал
Рейтинг: 30
∙ повысить рейтинг »
SAW
Статус: Студент
Рейтинг: 3
∙ повысить рейтинг »

∙ Базы данных

Номер выпуска:547
Дата выхода:18.09.2020, 23:45
Администратор рассылки:Коцюрбенко Алексей Владимирович (Старший модератор)
Подписчиков / экспертов:21 / 16
Вопросов / ответов:3 / 4

Консультация # 49545: Привет! Здоровья Всем и ни каких головных болей!!! Вопрос: уменя имеется запрос используемый, посылаемый PHP "SELECT * FROM registr_g10 WHERE ".$kr_poisk_kl_1." LIKE \'".$kr_poisk_kl_11."%\' AND ".$kr_poisk_kl_2." LIKE \'%".$kr_poisk_kl_22."%\' AND ".$kr_poisk_kl_3." LIKE \'%".$kr_poisk...
Консультация # 40900: Есть таблица: pole1|pole2|pole3| --------------------- zapis1|1|3| zapis1|1|1| zapis2|2|4| zapis2|2|5| zapis2|2|2| Я например, хочу извлечь со значение 3 и 4 в столбе pole3, но только если pole2 совпадает. Т.е. в данном примере не совпадает...
Консультация # 77500: Здравствуйте! Такой вопрос. Есть скрипт, алгоритм весьма сложен, поэтому рассказывать подробно не буду, а лиш необходимую часть. Есть таблица в базе данных(MySQL). Состоящая из трех полей и большого количества строк. Поля: номер страницы, IP, идентификационный номер из куки (есть еще поле времени но оно для нас несуществе...

Консультация # 49545:

Привет! Здоровья Всем и ни каких головных болей!!!
Вопрос: уменя имеется запрос используемый, посылаемый PHP
"SELECT * FROM registr_g10 WHERE ".$kr_poisk_kl_1." LIKE \'".$kr_poisk_kl_11."%\' AND ".$kr_poisk_kl_2." LIKE \'%".$kr_poisk_kl_22."%\' AND ".$kr_poisk_kl_3." LIKE \'%".$kr_poisk_kl_33."%\'";
Запрос осуществляет выборку данных из БД по частичному совпадению из одной таблице.
Так вот появилось у меня ещё одна таблица plus_registr_g10, как их связать (думается внешним ключём) так чтоб registr_g10(id_kl) с plus_registr_g10(id_kl) , т.е как в таком случае будет выглядить запрос SELECT а также UPDATE&

Дата отправки: 19.07.2006, 08:23
Вопрос задал: SKYnoSKY
Всего ответов: 1
Страница онлайн-консультации »


Консультирует LastSoul:

Здравствуйте, SKYnoSKY!

SELECT
*
FROM
registr_g10 t1
,plus_registr_g10 t2
WHERE
t1.id_kl=t2.id_kl
AND t1.".$kr_poisk_kl_1." LIKE \'".$kr_poisk_kl_11."%\'
AND t1.".$kr_poisk_kl_2." LIKE \'%".$kr_poisk_kl_22."%\'
AND t1.".$kr_poisk_kl_3." LIKE \'%".$kr_poisk_kl_33."%\'

Для update ничего не изменится поскольку одно выражение update выполняется на одной таблице. Т.е. для апдейтить прийдется каждую таблицу отдельно.

Консультировал: LastSoul
Дата отправки: 19.07.2006, 13:28
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 40900:

Есть таблица:
pole1|pole2|pole3|
---------------------
zapis1|1|3|
zapis1|1|1|
zapis2|2|4|
zapis2|2|5|
zapis2|2|2|
Я например, хочу извлечь со значение 3 и 4 в столбе pole3, но только если pole2 совпадает. Т.е. в данном примере не совпадает

Дата отправки: 20.04.2006, 23:56
Вопрос задал: Stamm
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Филатов Евгений Геннадьевич:

Здравствуйте, Stamm!

Создал таблицу и заполнил такими данными
Pole1 Pole2 Pole3
zapis1 1 3
zapis1 1 1
zapis2 2 4
zapis2 2 5
zapis2 2 2
zapis3 1 1
zapis3 1 2
zapis3 2 3
zapis3 1 4

Необходимо отобрать все записи, у которых Pole3 равно 3 или 4 и совпадает Pole2
SQL запрос :

SELECT *
FROM tabl t1
where (select count(t2.pole1) from tabl t2 where t2.pole2=t1.pole2 and t2.pole3 in (3,4))>1 and t1.pole3 in (3,4)

Возвращаются записи

Pole1 Pole2 Pole3
zapis1 1 3
zapis2 2 4
zapis3 2 3
zapis3 1 4

Если я не так понял смысл вопроса, пиши.

Консультировал: Филатов Евгений Геннадьевич
Дата отправки: 21.04.2006, 14:37
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Игорь Елизаров:

Здравствуйте, Stamm!
Пксть табличка называется Tab тогда запрос будет примерно таким

select tab.pole1,tab.pole2, tab.pole3
from tab
inner join tab t1 on tab.pole2 = t1.pole2
where tab.pole3 in (3, 4)
то есть создаем еще один образ той же самой таблицы и связываем их между собой по полю 2 и отбираем по значению 3 или 4 из поля 3

Консультировал: Игорь Елизаров
Дата отправки: 21.04.2006, 17:22
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 77500:

Здравствуйте! Такой вопрос.
Есть скрипт, алгоритм весьма сложен, поэтому рассказывать подробно не буду, а лиш необходимую часть.
Есть таблица в базе данных(MySQL). Состоящая из трех полей и большого количества строк. Поля:
номер страницы,
IP,
идентификационный номер из куки
(есть еще поле времени но оно для нас несущественно).
Таблица призвана обеспечить работой скрипт статистики. Очень важно знать кол-во уникальных посещений определенной страницы.
То есть когда пользователь посещает определенную страницу, то в данную таблицу заносится код стриницы, IP, и уникальный номер присвоенный скриптом еще раннее в куку. В дальнейшем добавится поле с хешем некоторых дополнительных переменных окружения (но сейчас не об этом). Такой сбор сведений требуется чтобы избежать попыток обмана(накрутки).
Вопрос: как сформулировать запрос к базе данных, так чтобы было показано количество уникльных посетителей определенной страницы? Т.е если хотя бы одно из полей (адрес, номер из куки) совпадают, то считать эти строки за одну.
Например запрос select (любое поле) from user where id=$id выдаст все посещения, как его модифицировать, чтобы количество строк затем соответствовало уникальным посетителям.
Можно конечно так select distinct (любое поле) from user id=$id, но тогда если хотябы одно поле изменится, то пользователь будет уже уникальным.
Более подробно:
Есть строки (поля соответственно ID, IP, NUM)
1. 78 250.123.142.125 45632
2. 78 145.230.178.145 48628
3. 78 145.230.178.145 48628
4. 78 220.175.085.023 45632

Для удобства привел только для 78 страницы статистику.
И так если сделаем запрос select distinct * from user where id=78
то в запросе окажутся все строки кроме 3, поскольку полностью иднентичны только 2 и 3 строки.
таким образом окажется что у нас три уникума. А уникума ведь на самом деле не три, а два, поскольку строки 1 и 4 соответствуют одному посетителю (у них повторяется номер из куки).

Прошу прощения за запутанный вопрос, но прошу разобраться и помоч мне.
Спасибо вам!

Дата отправки: 08.03.2007, 11:19
Вопрос задал: Valeraorg
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Ерёмин Андрей:

Здравствуйте, Valeraorg!
Действительно, вы всё так запутали, что разобраться нелегко. Ну во-первых, непонятно, если номер читается из куки, то почему он разный в течение времени? Ну да ладно, это нас не должно волновать. Насколько я понимаю, вам достаточно посчитать число разных значений в третьем поле - это и будет количество уникальных посещений. Тогда это делается так:
SELECT * FROM `user` WHERE (`id` = 78) GROUP BY `num`
Команда GROUP собирается все одинаковые значения в одно, т.е. оставляет только уникальные номера.
Вроде бы это должно решить вашу проблему.
Удачи!

Консультировал: Ерёмин Андрей
Дата отправки: 08.03.2007, 12:35
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное