我遇到sqlite3和“num_rows”问题。我不能要求像mysql这样的结果的num_rows。现在我不想自动执行SELECT查询以请求rowcount。 有没有办法在两种模式之间替换所有模式?
像
SELECT date,name,etc FROM myTable WHERE gender=1
// to
SELECT count(*) FROM myTable WHERE gender=1
我必须用count(*)替换SELECT和FROM之间的所有内容。 我可以这个preg_replace吗?
答案 0 :(得分:2)
对于您提供的示例,它很简单,但我想它不适用于所有查询语法。但试一试:
PHP代码(不知道你使用的语言):
$count_sql = preg_replace('/^(SELECT)\\s+.*?\\s+(FROM.*)$/s', '$1 count(*) $2', $select_sql);
但我猜,有一种更优雅的方法可以找到num_rows
的东西。您可以使用子查询,例如:
SELECT COUNT(*) FROM ( *** original query here *** )
效率不高,但您不必处理查询语法。