Задавайте вопросы, мы ответим
Вы не зашли.
Есть таблица из 2 полей.
steamid ip
и то и другое может повторяться т.е они не являются уникальными.
Как отправить такой запрос в базу чтоб он вернул bool значение или же мне просто нужно узнать есть ли такой steamid и\или ip в таблице, при чем сделать это нужно в 1 запросе.
Вернуть должно так:
steamid = true\false
ip = true\false
и если не сложно 2 вариант: чтоб возвращало не true\false а VARCHAR . Если совпадений не найдено то возвращало NULL (пустую строку).
Вернуть должно так:
steamid = 'STEAM_ID00123123'\'NULL' - если нет такого стимид
ip = '192.168.0.1'\'NULL' - если нет такого ip
Благодарю за внимание.
Неактивен
Неактивен
Большое спасибо, все работает как нужно.
Неактивен
vasya написал:
mysql> select 'steamid' `имя столбца`, ifnull(null,(select steamid from test where steamid = 'STEAM_ID00123129')) `значение`
union all
select 'ip', ifnull(null,(select ip from test where ip = '192.168.0.1'));
+-----------------------+------------------+
| имя столбца | значение |
+-----------------------+------------------+
| steamid | NULL |
| ip | 192.168.0.1 |
+-----------------------+------------------+
еще 1 маленький вопрос.. я пишу на pawn и он почему-то при получении CallBack (ответа)
Запрос:
select 'steamid' `имя столбца`, ifnull(null,(select steamid from test where steamid = '12345')) `значение` union all select 'ip', ifnull(null,(select ip from test where ip = '1.1.1.1'))
Ответ:
char Steam_ID[32];
char Ip[16];
SQL_FetchString(hndl, 0, Steam_ID, 32);
SQL_FetchString(hndl, 1, Ip, 16);
Steam_ID = "steaimid" //а должно быть 12345
Ip = "ip" //а должно быть 1.1.1.1
Дам пример рабочего SELECT запроса (который успешно работает на этом языке):
Запрос: SELECT ip FROM client WHERE steamid='12345'
Ответ:
char Ip[16];
SQL_FetchString(hndl, 0, Ip, 16);
Ip = "1.1.1.1" //То что и нужно.
А еще ругается в логах: Subquery returns more than 1 row (ругается на то что в базе несколько одинаковых значений в 1 столбце - но так я и задумывал, нужно чтоб не ругалось и работало)
Отредактированно Naykon (10.05.2017 05:50:23)
Неактивен
Не доступно обьяснил или это сверх-нерешаемая задача?
Неактивен
На этот форум едва ли заходит много специалистов по pawn, лучше на их специализированном форуме спросить.
Что касается
Subquery returns more than 1 row
То это к тому, что подзапрос
select steamid from test where steamid = '12345'
возвращает больше чем один ряд, а ifnull ожидает, что вернет 1, вот и ошибка.
Вылечить можно разными способами, например принудительно указав, что нужен только один результирующий row, select steamid from test where steamid = '12345' limit 1
Неактивен