Используйте sprintf
и затем переводите десятичные точки в запятую:
before <- after <- 4
fmt <- sprintf("%%0%d.%df", before + after + 1, after)
transform(df, a = chartr(".", ",", sprintf(fmt, a)))
, давая:
a
1 0002,5000
2 0003,5600
3 0004,5000
или записывая это с помощью dplyr:
library(dplyr)
before <- after <- 4
df %>%
mutate(a = "%%0%d.%df" %>%
sprintf(before + after + 1, after) %>%
sprintf(a) %>%
chartr(".", ",", .))
[118 ] дает:
a
1 0002,5000
2 0003,5600
3 0004,5000
Обновление: По-видимому, возможно передать флаг в mysql_connect ()
. См. Выполнение нескольких запросов SQL в одном выражении с помощью PHP Тем не менее, любой текущий читатель должен избегать использования класса функций mysql_
и предпочитать PDO.
Вы не можете сделать это с помощью обычный MySQL-API в PHP. Просто выполните два запроса. Второй будет настолько быстрым, что это не будет иметь значения. Это типичный пример микрооптимизации. Не беспокойтесь об этом.
Для справки, это можно сделать с помощью mysqli и функции mysqli_multi_query .
С помощью SQL_CALC_FOUND_ROWS
вы не можете.
Число строк, доступных через FOUND_ROWS (), является временным и не предназначено для того, чтобы быть доступным после оператора, следующего за оператором SELECT SQL_CALC_FOUND_ROWS .
Как кто-то заметил в вашем предыдущем вопросе, использование SQL_CALC_FOUND_ROWS
часто медленнее, чем просто подсчет.
Возможно, вам лучше сделать это как подзапрос:
SELECT
(select count(*) from my_table WHERE Name LIKE '%prashant%')
as total_rows,
Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10;
Вам придется использовать расширение MySQLi, если вы не хотите выполнять запрос дважды:
if (mysqli_multi_query($link, $query))
{
$result1 = mysqli_store_result($link);
$result2 = null;
if (mysqli_more_results($link))
{
mysqli_next_result($link);
$result2 = mysqli_store_result($link);
}
// do something with both result sets.
if ($result1)
mysqli_free_result($result1);
if ($result2)
mysqli_free_result($result2);
}
Примерно так:
$result1 = mysql_query($query1);
$result2 = mysql_query($query2);
// do something with the 2 result sets...
if ($result1)
mysql_free_result($result1);
if ($result2)
mysql_free_result($result2);
На сайте PHP говорится, что несколько запросов НЕ разрешены (РЕДАКТИРОВАТЬ: Это верно только для расширения mysql. Mysqli и PDO допускают несколько запросов) , Так что вы не можете сделать это в PHP, НО, почему вы не можете просто выполнить этот запрос в другом вызове mysql_query (как пример Джона)? Это все равно должно дать вам правильный результат, если вы используете то же соединение. Также могут помочь mysql_num_rows .