php – MySQL替换每条记录的值
我的数据库中有一个表如下所示:
========= 等等.我希望能够做一个查询,告诉我字母表中的哪些字母不在表格中. 我原本想要这样的查询: SELECT REPLACE(‘abcdefghijklmnopqrstuvwxyz’,(SELECT code FROM table),”); 并希望输出’defghijklmnopqrstuvwxyz’,我可以将其爆炸成一个未使用的字符数组.不幸的是,MySQL的REPLACE不允许使用值表. 有关如何构建此列表的任何建议? 解决方法
我建议这样做的方法是为字母表中的每个字母创建一个带有行的表,这样可以很容易地删除末尾带有LEFT JOIN和GROUP_CONCAT的字母.
由于缺少该表,您将不得不求助于黑客攻击,使用临时变量和行数多于字母数的表之间的JOIN构建临时“字母表”.对于此示例,我使用INFORMATION_SCHEMA.COLLATIONS. SELECT GROUP_CONCAT(CHAR(ch) SEPARATOR '') 'missing letters' FROM (SELECT @tmp:=@tmp+1 ch FROM (SELECT @tmp:=96) a,INFORMATION_SCHEMA.COLLATIONS WHERE @tmp<122) z LEFT JOIN TableA ON ch=ORD(TableA.code) WHERE TableA.code IS NULL; 嵌套的SELECT构建字母序列,LEFT JOIN删除TableA(您的表)中存在的字母. GROUP_JOIN连接结果字母.结果是一个字符串,其中包含TableA中不存在的所有字母. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |