#facebook #facebook-fql
#Facebook #facebook-fql
Вопрос:
Я пытаюсь что-то выяснить с помощью fql и я сделал некоторый запрос select, который показывает друзей, у которых день рождения в выбранный день.
Я не могу понять, как задать некоторый временной диапазон в запросе.
$fql_n = "SELECT uid, name, birthday_date FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
AND strlen(birthday_date) != 0 ORDER BY birthday_date";
Дата Facebook указана в формате mm/dd/yyyy
.
Ответ №1:
Оба birthday_date
и birthday
являются строками. На самом деле нет способа выполнить поиск по диапазону.
Вы могли бы указать список дат и использовать IN
WHERE birthday_date IN ('05/30/1990','05/29/1990')
Комментарии:
1. Это не работает. ничего не возвращает, когда я добавляю это утверждение. конечно, я изменил дату на больший диапазон, поэтому дело не в том, что ни у кого из моих друзей нет дня рождения между ними 😉 Я буду благодарен за другое решение. приветствия
2. Это не диапазон. Как я уже сказал, вы не можете использовать диапазон. У вас должны быть конкретные даты в списке.
Ответ №2:
вы можете указать день, в который хотите отметить день рождения
SELECT name, birthday_date
FROM user
WHERE uid IN (
SELECT uid2
FROM friend
WHERE uid1=me()
)
AND (strpos(lower(birthday_date),"08/01") >=0 OR strpos(lower(birthday_date),"08/02") >=0)
// это приведет к выборке дня рождения за 1 и 2 августа, используйте birthday_date, чтобы у вас был формат ММ / ДД / ГГГГ.