Для динамического поворота используйте GROUP_CONCAT
с CONCAT
. Функция GROUP_CONCAT объединяет строки из одной группы в одну строку с различными опциями.
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(CASE WHEN action = "',
action,'" AND ',
(CASE WHEN pagecount IS NOT NULL
THEN CONCAT("pagecount = ",pagecount)
ELSE pagecount IS NULL END),
' THEN 1 ELSE 0 end) AS ',
action, IFNULL(pagecount,'')
)
)
INTO @sql
FROM
t;
SET @sql = CONCAT('SELECT company_name, ', @sql, '
FROM t
GROUP BY company_name');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
var re = new RegExp("/\b"+test+"\b/");
\b
в строковом литерале является символом обратного пробела. При размещении регулярного выражения в строковом литерале вам понадобится еще один раунд экранирования:
var re = new RegExp("\\b"+test+"\\b");
(В этом контексте вам также не нужен //
.)
вы можете использовать
/(^|,)52(,|$)/.test('51,52,53')
, но я предлагаю использовать
var list = '51,52,53';
function test2(list, test){
return !((","+list+",").indexOf(","+test+",") === -1)
}
alert( test2(list,52) )
new
, так и без него. Однако для согласованности с другими объектами, где это может быть недействительным и ясностью в целом, я всегда использовал быnew
. – bobince 26 April 2010 в 12:11new RegExp('\b'+test+'\b');
– IQAndreas 14 March 2015 в 08:09