使用PHP正则表达式从MySQL查询中剥离/删除所有值?

使用PHP正则表达式从MySQL查询中剥离/删除所有值?,php,mysql,regex,strip,Php,Mysql,Regex,Strip,如何使用PHP正则表达式从MySQL查询中剥离/删除所有值 例如: 原始:从mytable中选择id,abc,其中id位于(12,15) 条带化:从mytable中选择id,abc,其中id位于() 原件: SELECT ut.id, IF(stagiaire_devis.id IS NOT NULL, CONCAT(ut.prenom, ' (my lovely)', ut.prenom) AS value FROM quality AS uq, avocate, utility AS ut

如何使用PHP正则表达式从MySQL查询中剥离/删除所有值

例如:

原始:
从mytable中选择id,abc,其中id位于(12,15)

条带化:
从mytable中选择id,abc,其中id位于()

原件:

SELECT ut.id, IF(stagiaire_devis.id IS NOT NULL, CONCAT(ut.prenom, ' (my lovely)', ut.prenom) AS value FROM quality AS uq, avocate, utility AS ut LEFT JOIN stagiaire_devis ON (stagiaire_devis.id_devis='1293049' AND stagiaire_devis.id_utilisateur=ut.id) WHERE uq.id_utilisateur = ut.id AND avocate.id_utilisateur = ut.id AND avocate.deleted = 0 AND avocate.id_avocat_liste_cabinet = 7 AND uq.id_liste_qualite IN (5,2,9) AND uq.actif = 2 ORDER BY ut.prenom
条纹:

SELECT ut.id, IF(stagiaire_devis.id IS NOT NULL, CONCAT(ut.prenom, '', ut.prenom) AS value FROM quality AS uq, avocate, utility AS ut LEFT JOIN stagiaire_devis ON (stagiaire_devis.id_devis='' AND stagiaire_devis.id_utilisateur=ut.id) WHERE uq.id_utilisateur = ut.id AND avocate.id_utilisateur = ut.id AND avocate.deleted = AND avocate.id_avocat_liste_cabinet = AND uq.id_liste_qualite IN () AND uq.actif = ORDER BY ut.prenom

我找不到正确的正则表达式:(

您不能对任何正则表达式执行此操作,因为SQL不是

要执行此任务,您需要使用


编辑您的评论:

好的,您需要为查询建立一种“指纹”,这样当查询只有常量值不同时,您可以将它们分组在一起


该工具可以做到这一点。它可以处理慢速查询日志或常规日志,但不能处理错误日志。但使用
awk
或其他工具将错误日志转换为pt query digest可以读取的格式可能并不难。

我相信很难找到用于此目的的正则表达式。基本上,您必须解析SQL,检测呃文本是一个“值”或者不删除,然后将其删除。这可能是一种更好的方法来告诉我们您真正需要什么,因为没有值的查询对我来说没有意义。我需要从SQL查询中删除所有值,因此SQL查询中只有SQL命令、字段和表。我们可以告诉您删除文字值后将剩下什么。这不是答案他问你为什么要这样做。如果你描述一下你将如何处理一个被剥离了值的SQL语句,也许我们可以建议其他方法。我需要从这个SQL查询中剥离所有的值,这样我就可以进行常规SQL查询,以便在同一个错误查询中查看SQL错误日志,我需要忽略查询中的值,因此它类似于对sql错误消息进行分组。我正在通过解析和创建者尝试使用PHP-sql-PARSER,但无法找到识别值并删除的解决方案