Skip to content

Instantly share code, notes, and snippets.

@MarkBiesheuvel
Created April 25, 2013 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MarkBiesheuvel/5460028 to your computer and use it in GitHub Desktop.
Save MarkBiesheuvel/5460028 to your computer and use it in GitHub Desktop.
A quine in SQL.
SET SESSION group_concat_max_len = 1600;
DROP TABLE IF EXISTS `list`;
CREATE TABLE `list` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`var` VARCHAR(120) NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `list` (`var`) VALUES
("SET SESSION group_concat_max_len = 1600;"),
("DROP TABLE IF EXISTS `list`;"),
("CREATE TABLE `list` ("),
(" `id` INT(10) NOT NULL AUTO_INCREMENT,"),
(" `var` VARCHAR(120) NOT NULL,"),
(" PRIMARY KEY (`id`)"),
(");"),
("INSERT INTO `list` (`var`) VALUES"),
(";"),
("SELECT GROUP_CONCAT(`var` SEPARATOR '\\r\\n') var"),
("FROM ("),
("( SELECT GROUP_CONCAT(`var` SEPARATOR '\\r\\n') var"),
(" FROM `list`"),
(" WHERE id<=8"),
(" ORDER BY `id`)"),
("UNION"),
("( SELECT GROUP_CONCAT(CONCAT(' (\"', REPLACE(REPLACE(`var`, '\\\\', '\\\\\\\\'), '\"', '\\\\\"' ), '\")') SEPARATOR ',\\r\\n') var"),
(" FROM `list`"),
(" ORDER BY `id`)"),
("UNION"),
("( SELECT GROUP_CONCAT(`var` SEPARATOR '\\r\\n') var"),
(" FROM `list`"),
(" WHERE id>8"),
(" ORDER BY `id`)"),
(") t;")
;
SELECT GROUP_CONCAT(`var` SEPARATOR '\r\n') var
FROM (
( SELECT GROUP_CONCAT(`var` SEPARATOR '\r\n') var
FROM `list`
WHERE id<=8
ORDER BY `id`)
UNION
( SELECT GROUP_CONCAT(CONCAT(' ("', REPLACE(REPLACE(`var`, '\\', '\\\\'), '"', '\\"' ), '")') SEPARATOR ',\r\n') var
FROM `list`
ORDER BY `id`)
UNION
( SELECT GROUP_CONCAT(`var` SEPARATOR '\r\n') var
FROM `list`
WHERE id>8
ORDER BY `id`)
) t;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment