· 8 years ago · Jun 29, 2018, 08:32 AM
1DROP PROCEDURE IF EXISTS `GetStrings`$$
2CREATE PROCEDURE `GetStrings` (
3 IN `game` VARCHAR(8), IN `lang` VARCHAR(8), IN `tolang` VARCHAR(8),
4 IN `start` SMALLINT(6)
5)
6BEGIN
7 DECLARE `lstart` INT;
8 DECLARE `lend` INT;
9
10 SET `lstart` = `start`;
11 SET `lend` = 30;
12
13 CREATE TEMPORARY TABLE `tempstrings` (
14 `string_name` VARCHAR(225) NOT NULL,
15 `from_text` TEXT NOT NULL,
16 `to_text` TEXT DEFAULT NULL,
17 `to_user` VARCHAR(128) DEFAULT NULL,
18 `to_created` VARCHAR(128) DEFAULT NULL,
19 `to_approvedby` VARCHAR(128) DEFAULT NULL
20 );
21
22 PREPARE `tempstatement` FROM 'INSERT INTO `tempstrings` (`string_name`,
23 `from_text`, `to_text`, `to_user`, `to_created`,
24 `to_approvedby`)
25 SELECT
26 f.`string_name`, f.`string_text`, t.`string_text`,
27 u.`user_name`, t.`string_created`, a.`user_name`
28 FROM `strings` f
29 LEFT JOIN `strings` t
30 ON f.`string_name` = t.`string_name`
31 AND f.`string_game` = t.`string_game`
32 AND t.`string_lang` = `tolang`
33 LEFT JOIN `users` u
34 ON u.`user_id` = t.`user_id`
35 LEFT JOIN `users` a
36 ON a.`user_id` = t.`approved_by`
37 WHERE f.`string_lang` = `lang`
38 LIMIT ?,?';
39 EXECUTE `tempstatement` USING `lstart`, `lend`;
40 DEALLOCATE PREPARE `tempstatement`;
41
42 SELECT * FROM `tempstrings`
43 ORDER BY `string_name`;
44END $$