Ок, значит подзапрос буду делать... Фиг с ним, а то таблицу столь хитрым запросом уже и так скручиваю в бараний рог)
Минус такого запроса в том, что в пролете оказываются те месяцы, где не было ни одного платежа через Webmoney.
e_moon добавил 28.11.2011 в 16:16
Здесь я получаю список всех способов оплаты, месяц не уникальный при таком способе GROUP BY.
Т.е. результат такой:
11-2011 | 2 | 80
11-2011 | 1 | 100
10-2011 | 1 | 50
10-2011 | 1 | 20
А вот такой вывод получить не получается никак:
месяц -> количество платежей всего (всеми способами) -> сумма (только по WebMoney)
Т.е. такого вида:
11-2011 | 3 | 80
10-2011 | 2 | 50
Да, нужен SUMM(paymentSumm), но только где paymentType="Webmoney".
А GROUP BY же как? В течение месяца идет по нескольку платежей через один из способов оплаты!?.
Короче говоря, прихожу к тому что надо все-таки делать в два запроса.
И все-таки не получается как надо.
SUM(s.paymentType="Webmoney") возвращает количество строк, где платеж шел по Webmoney, но не сумму поступивших средств!
SELECT COUNT(id) AS payCount, DATE_FORMAT(FROM_UNIXTIME(paymentDate),"%m-%Y") AS dateDiff, SUM(paymentType="Webmoney") AS paySumm FROM paymentslist GROUP BY dateDiff ORDER BY paymentDate DESC
Простите, но не могу сообразить. Если правильно понял, вы предлагаете делать подзапрос? Вроде: COUNT( (SELECT * ...) )?
e_moon добавил 28.11.2011 в 13:52
SUM(s.paymentType="Webmoney") AS paySumm
Спасибо огромное, кажется направили в нужное русло!
Видимо только так. Это проще будет. Спасибо.
Тогда уж проще REGEXP. Мне нужно универсальный способ поиска, пример - это частный случай. В базе штук 1000 пользователей. Есть Фёдоров и т.п...
Попробую покопать в этом направлении. Наверняка можно в запросе динамически менять сопоставление. Или временную таблицу пробовать создавать. Что-то должно же быть!
А как Вы этого добились? Т.е. какой у Вас предварительный запрос на SET NAMES и т.д?
e_moon добавил 23.11.2011 в 16:59
В phpMyAdmin поиск работает точно так же - буквы е и ё считает разными.
Ну как? Объясните? Пока понял одну вещь - в utf буквы е и ё идут одинаковые.
Можно, конечно делать REGEXP-запрос, вроде:
SELECT * FROM table WHERE name REGEXP "Рубл[е|ё]в"
но это же ни FULLTEXT-поиска в перспективе, ни других возможностей...
У меня задача - задать SELECT запрос, допустим, name="Ёлка" и получить 2 ряда, где 1) "Ёлка" и 2) "Елка". Это реально?
e_moon добавил 23.11.2011 в 16:46
Я ж говорю, что пытаюсь применить рекомендации которые удалось найти. Видимо чего-то не догоняю. У меня сейчас получается только буквальный поиск:
SELECT * FROM register WHERE name="Рублёв"
вернет одну запись с именем Рублёв.
SELECT * FROM register WHERE name="Рублев"
вернет одну запись с именем Рублев.
А мне нужно одним запросом получить обе записи...
Но каким образом? Домен UA нельзя просто взять и зарегить! Ну по правилам домена так...
Ну теперь понятно
Нашёл на hostmaster.net:
Не знал, что одну и ту же марку можно регистрировать в разных классах... Ну что ж, разачарую своего клиента...
ЗЫ. Тогда имею идею наладить выпуск алкоголя под ТМ "Microsoft" - это реально!?