Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.35 KB | None | 0 0
  1. DELIMITER $$
  2. CREATE DEFINER=`root`@`%` PROCEDURE `get_messages_v4`(IN `logged_user` INT, IN `interval_minutes` INT, IN `last_got_id` INT, IN `param_interval_user_defined` INT)
  3.     READS SQL DATA
  4. SELECT
  5.     message_id,
  6.     recipient_id,
  7.     sender_id,
  8.     sender_username,
  9.     sender_username_html,
  10.     phpbb_users.username as recipient_username,
  11.     phpbb_users.login_colorized as recipient_username_html,
  12.     message_type,
  13.     message,
  14.     date,
  15.     IF(message_type='whisper' AND sender_id != logged_user AND recipient_id != logged_user, 1, 0) AS read_private
  16. FROM
  17. (
  18.         (
  19.         SELECT
  20.             messages.id as message_id,
  21.             messages.recipient as recipient_id,
  22.             messages.user_id as sender_id,
  23.             phpbb_users.username as sender_username,
  24.             phpbb_users.login_colorized as sender_username_html,
  25.             messages.type_message as message_type,
  26.             messages.message as message,
  27.             messages.date as date
  28.         FROM messages
  29.         LEFT JOIN phpbb_users ON messages.user_id = phpbb_users.user_id
  30.         WHERE
  31.             messages.id > last_got_id
  32.             AND
  33.             (
  34.                 messages.date > NOW() - INTERVAL interval_minutes MINUTE
  35.                 OR(
  36.                     messages.date > NOW() - INTERVAL param_interval_user_defined MINUTE
  37.                     AND
  38.                     (SELECT allowed
  39.                      FROM user_permission
  40.                      WHERE user_id = logged_user
  41.                        AND permission_name = 'read_more'
  42.                     )= 1
  43.                 )
  44.             )
  45.             AND
  46.             (
  47.                 (
  48.                     messages.type_message = 'whisper'
  49.                     AND
  50.                     (
  51.                         (
  52.                         messages.user_id = logged_user
  53.                         OR
  54.                         messages.recipient = logged_user
  55.                         )
  56.                         OR
  57.                         (
  58.                             (SELECT allowed
  59.                              FROM user_permission
  60.                              WHERE user_id = logged_user
  61.                                AND permission_name = 'read_private'
  62.                             )= 1
  63.                         )
  64.                     )
  65.                 )
  66.                 OR
  67.                 messages.type_message = 'glass'
  68.                 OR
  69.                 messages.type_message = 'say'
  70.             )
  71.         ORDER BY message_id DESC LIMIT 100
  72.         )
  73. ) AS msgs
  74. LEFT JOIN phpbb_users ON msgs.recipient_id = phpbb_users.user_id
  75. ORDER BY message_id ASC$$
  76. DELIMITER ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement