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

Форум PHP

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

 

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

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

тема: php vs mysql
 
 автор: P@Sol   (14.06.2012 в 19:49)   письмо автору
 
 

есть две таблицы с email. Необходимо сделать расслылку по email с обеих таблиц, чтоб адреса не повторялись.

1) Делаю объединение с помощью mysql: (SELECT Email, OptSD from users) union (select Email, OptSD from subscr) - 8475 строк (в users - 3993, в subscr - SELECT count(DISTINCT Email )
FROM subscr - 7440)

2) делаю объединение через php:

if ($_POST['user']==1 || $_POST['user']==2)
{
    $db->Query('SELECT Email FROM users');
    while ($db->NextRecord())
    {
        $arr[] = trim(strtolower($db->F('Email')));

        $ucount++;
    }
}
//3993 записи
if ($_POST['user']==1 || $_POST['user']==3)
{
    $db->Query('SELECT Email FROM subscr');
    while ($db->NextRecord())
    {
        $arr[] = trim(strtolower($db->F('Email')));

        $ucount++;
    }
}
//7440 записей
$result=array_unique($arr);
natcasesort($result);

echo count($result)."<br>";
print_r ($result); //8453 записи

  Ответить  
 
 автор: Desh   (14.06.2012 в 19:59)   письмо автору
 
   для: P@Sol   (14.06.2012 в 19:49)
 

Вопрос-то в чём?

  Ответить  
 
 автор: P@Sol   (14.06.2012 в 23:06)   письмо автору
 
   для: Desh   (14.06.2012 в 19:59)
 

вопрос в том что итогово в 1 случае 8475, а во втором - 8453 строки (при том что по отдельности кол-во в каждой таблице в обоих вариантах одинаковое). кто прав? я подозреваю, что второй. Можно ли как то в 1-случае добиться того же?

  Ответить  
 
 автор: Desh   (16.06.2012 в 00:25)   письмо автору
 
   для: P@Sol   (14.06.2012 в 23:06)
 

Ну это надо тестировать уже конкретно в Вашем случае. Может разница из-за того, что в Email-ы записаны в разных регистрах и если в Вашем PHP-коде все результаты приводятся к нижнему регистру, то в SQL-запросе это не так. Попробуйте в SELECT значения Email приводить в нижний регистр тоже.

Если не поможет, то попробуем подумать ещё. Хотя вслепую это маловероятно;)

  Ответить  
 
 автор: Desh   (14.06.2012 в 19:59)   письмо автору
 
   для: P@Sol   (14.06.2012 в 19:49)
 

Вопрос-то в чём?

  Ответить  
Rambler's Top100
вверх

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