【问题标题】:How to replace mySQL query fields with count keyword?如何用 count 关键字替换 mySQL 查询字段?
【发布时间】:2016-06-26 04:50:33
【问题描述】:

我必须使用 php preg_replace 函数替换 mysql 列是否可以做到。 字段不一致任何东西都可以在那里,例如 * 或任意数量的字段。

示例:-

query1 : Select * from user;
query2 : Select fname,lname,email from user;
query3 : Select a.*,b.col1,b.col2 from user as a left join table2 as b where a.id = b.userid;

替换后的查询应该是这样的:

query1 : Select count from user;
query2 : Select count from user;
query3 : Select count from user as a left join table2 as b where a.id = b.userid;

【问题讨论】:

  • 那么你尝试了什么?
  • 也许你想要COUNT(*),而不仅仅是count

标签: php mysql regex preg-replace


【解决方案1】:

preg_replace 使用起来非常简单,它只接受一个模式、一个用于替换模式的字符串和主题文本作为参数,它返回操作后的字符串:

<?php

$query1 = <<<SQL
    Select * from user;
SQL;
$query2 = <<<SQL
    Select fname,lname,email from user;
SQL;
$query3 = <<<SQL
    Select a.*,b.col1,b.col2 from user as a left join table2 as b where a.id = b.userid;
SQL;

$query1 = preg_replace('/Select .* from/', 'Select count from', $query1);
$query2 = preg_replace('/Select .* from/', 'Select count from', $query2);
$query3 = preg_replace('/Select .* from/', 'Select count from', $query3);

/* the manipulated strings are now assigned to these variables, echo to view them */

echo $query1 . PHP_EOL;
echo $query2 . PHP_EOL;
echo $query3 . PHP_EOL;

输出(在终端中)

% php test.php
        Select count from user;
        Select count from user;
        Select count from user as a left join table2 as b where a.id = b.userid;

【讨论】:

  • 谢谢,这正是我想要的。但我不明白为什么我的问题是负面标记。
猜你喜欢
  • 2021-09-01
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 2014-12-22
  • 2018-09-25
  • 1970-01-01
相关资源
最近更新 更多