我有兩個表朋友和生日。簡單的mysql加入特定日期
生日模式:用戶名和birthday_date
朋友模式:用戶名和userid2。
我怎樣才能找出今天有生日的人的朋友? 我想是這樣的:
SELECT *
FROM friends
WHERE userid2 IN
(SELECT userid
FROM birthdays
WHERE birthday_date='05/02')
這是做的最好的方法是什麼?
這裏是EXPLAIN響應,我得到:
+----+--------------------+-----------------------------+-----------------+-----------------------+---------+---------+------+-----------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+-----------------------------+-----------------+-----------------------+---------+---------+------+-----------+--------------------------+
| 1 | PRIMARY | friends | index | NULL | userid2 | 8 | NULL | 4192662 | Using where; Using index |
| 2 | DEPENDENT SUBQUERY | birthdays | unique_subquery | PRIMARY,birthday_date | PRIMARY | 8 | func | 1 | Using where |
+----+--------------------+-----------------------------+-----------------+-----------------------+---------+---------+------+-----------+--------------------------+
如果搜索400萬行這似乎並不優化。
此外,每列都有索引。
你有什麼錯誤嗎? – Sadikhasan
生日日期是如何存儲在數據庫中的? –
userid是bigint。 birthday_date是varchar – user3138541