MYSQL 5.5 の関数に行き詰まっていFIND_IN_SET
ます。たとえば、次のようになります。
10,9,5,8,21
ユーザーIDを考慮して、以下のクエリを確認してください
SELECT u.user_id,u.first_name,u.last_name
FROM user u
WHERE
u.is_active = 'Y'
AND FIND_IN_SET(u.user_id,'10,9,5,8,21');
このクエリを起動すると、ユーザーIDの昇順で結果が得られます
5
8
9
10
21
入った順番通りにしたい
10
9
5
8
21
それを達成する方法はありますか?
ストアド プロシージャ
DROP PROCEDURE IF EXISTS databaseName.procName;
DELIMITER //
CREATE PROCEDURE databaseName.procName(IN ZoneIDs LONGTEXT)
BEGIN
SELECT u.user_id,u.first_name,u.last_name
FROM user u
WHERE u.is_active = 'Y'
AND FIND_IN_SET(u.user_id,ZoneIDs);
END //
DELIMITER ;