Adding syntax for MySQL to WordPress plugin Crayon Syntax Highlighter
… or how to make Crayon Syntax Highlighter speak „MySQL“
First – if not already done – you have to download and install Crayon Syntax Highlighter.
Then just extract the following zip file and copy the mysql folder into the following directory and your done:
{your-wordpress-root-path}/wp-content/plugins/crayon-syntax-highlighter/langs
Here is the download link for the add-on:
mysql-1.0.0.zip (3991 Downloads )
And this is how it looks like with the new add-on installed:
-- a comment
SET NAMES 'utf8';
# another comment
DROP TABLE item;
DROP DATABASE `shop`;
/*
* and another comment
*/
DROP TRIGGER IF EXISTS `trigger_item`;
DELIMITER //
CREATE TRIGGER `trigger_item` AFTER UPDATE ON `item`
FOR EACH ROW BEGIN
IF COALESCE(NEW.value, -1) <> COALESCE(OLD.value, -1) THEN
INSERT INTO item_log (item_id, old, new, inserted) VALUES (NEW.item_id, OLD.value, NEW.value, NOW());
END IF;
END
//
DELIMITER ;
CREATE TABLE `item` (
`item_id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`value` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`category` enum('lifestyle', 'it', 'unknown') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'unknown',
`inserted` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SELECT
i.item_id AS `ItemID`,
i.category AS Category,
FLOOR(i.category / 100) AS Catalog,
CONCAT(i.value, ' ', SUM(r.amount), ' hits') AS `Hits`,
DATE_FORMAT(i.inserted, '%d.%m.%Y') AS `Datum`,
IF(i.category = 'lifestyle', 'cool', '') AS `Feedback`,
IFNULL ( i.category, 'buggy' ) AS CategorySomething -- not nice but works: there should be no whitespace between function name and the bracket
FROM
item AS i
LEFT JOIN
rate AS r
USE INDEX( -- not nice but works: there should be a whitespace between the reserved word and the bracket
idx_item_rate
)
ON (
i.item_id = r.item_id
AND r.is_active = 1
)
WHERE
i.article_id = 12345
AND i.category IN('lifestyle', 'it')
AND(
i.value IS NOT NULL
OR i.inserted > NOW() - INTERVAL 10 HOUR
OR HOUR(i.inserted) = 8
OR i.inserted BETWEEN '2013-01-01' AND CURDATE()
OR i.value REGEXP "abc"
)
GROUP BY
`ItemID`
HAVING
Catalog = 12
ORDER BY
Category ASC,
`Hits` DESC
LIMIT
1
OFFSET 10
;Of course the sql statements don’t really make sense. It’s just an example for the syntax highlighting.
