Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql-php blob字段?_Php_Mysql_Mysqli - Fatal编程技术网

mysql-php blob字段?

mysql-php blob字段?,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个查询,它返回的结果似乎是一个BLOB SELECT CAST(GROUP_CONCAT(CONCAT(value,'(',qty,')') SEPARATOR ', ') AS CHAR)a FROM ( SELECT value,count(*) qty FROM extra_field_values WHERE fieldid = @fieldid AND value != '' AND itemid IN (7,8,10,

我有一个查询,它返回的结果似乎是一个BLOB

SELECT CAST(GROUP_CONCAT(CONCAT(value,'(',qty,')') SEPARATOR ', ') AS CHAR)a 
FROM ( 
   SELECT value,count(*) qty 
     FROM extra_field_values 
    WHERE fieldid = @fieldid 
      AND value != '' 
      AND itemid IN (7,8,10,12,15,16,17,18,19,20,21,22,23,24,25,26) 
   GROUP BY value
) x 
桌子是空的

CREATE TABLE `extra_field_values` (
   `itemid` int(11) NOT NULL DEFAULT '0',
   `fieldid` int(11) NOT NULL DEFAULT '0',
   `value` text NOT NULL,
   KEY `itemid` (`itemid`),
   KEY `fieldid` (`fieldid`),
   KEY `value` (`value`(1)),
   KEY `inx` (`itemid`,`fieldid`,`value`(1))
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
其主要思想是,我希望每行返回一个字符串值:::count由###分隔

问题是php返回空结果。就驱动程序而言,我已经尝试过mysql和mysqli。 有什么想法吗

PHP

即使您通过phpmyadmin执行它,它也会返回null。试穿一下,效果很好

完整查询

SELECT 
extra_field_values.fieldid,
extra_fields.var_name,
extra_fields.field,
extra_fields.type,
@fieldid:=extra_field_values.fieldid, 
( 
 SELECT CAST(GROUP_CONCAT(CONCAT(value,'(',qty,')') SEPARATOR ', ') AS CHAR) a 
 FROM ( SELECT value, @fieldid, count(*) qty FROM extra_field_values WHERE fieldid = @fieldid GROUP BY value ) x 
) as v,
count(itemid) as total,
(SELECT groupid FROM extra_fields_groups_items WHERE itemid = @fieldid) as groupid 
FROM extra_field_values INNER JOIN extra_fields 
  ON (extra_field_values.fieldid=extra_fields.fieldid) 
WHERE module = 'listings' 
 AND itemid IN (7,8,10,12,15,16,17,18,19,20,21,22,23,24,25,26) 
 AND settings LIKE '%"search";s:1:"1"%' 
GROUP BY fieldid

您正在查询与会话变量
@fieldid
匹配的字段,但我猜您没有在mysqli会话或phpmyadmin环境中定义该变量

SET @fieldid := 1234;
SELECT ... WHERE fieldid = @fieldid ...
或者,您可以使用
作为fieldid的查询参数占位符,并将其绑定到PHP变量


在不使用@fieldid会话变量的情况下,以下查询是否执行了您想要的操作

SELECT x.fieldid, x.var_name, x.field, x.type, x.groupid, COUNT(*) AS total,
  CAST(GROUP_CONCAT(CONCAT(x.value,'(',x.qty,')') SEPARATOR ', ') AS CHAR) a 
FROM ( 
  SELECT v.value, v.fieldid, f.var_name, f.field, f.type, g.groupid, COUNT(*) AS qty 
  FROM extra_field_values AS v
  INNER JOIN extra_fields AS f ON f.fieldid=v.fieldid
  INNER JOIN extra_fields_groups_item AS g ON g.itemid=v.fieldid
  WHERE f.module = 'listings'
   AND f.itemid IN (7,8,10,12,15,16,17,18,19,20,21,22,23,24,25,26) 
   AND f.settings LIKE '%"search";s:1:"1"%' 
  GROUP BY v.value, v.fieldid
  ) as x
GROUP BY x.fieldid

它是在其他地方定义的。我显示的查询是一个子查询。完整的查询类似于SELECT extra_field_values.fieldid,extra_fields.var_name,extra_fields.field,extra_fields.type,@fieldid:=extra_field_values.fieldid,(选择CAST(GROUP_CONCAT)(CONCAT(……您的评论被截断了。请编辑您的原始问题并发布完整的SQL查询。是的,这对我来说很好。Thanx很多时候,我花了太多时间在我的aproach上,以至于我从来没有想到另一个。
SELECT x.fieldid, x.var_name, x.field, x.type, x.groupid, COUNT(*) AS total,
  CAST(GROUP_CONCAT(CONCAT(x.value,'(',x.qty,')') SEPARATOR ', ') AS CHAR) a 
FROM ( 
  SELECT v.value, v.fieldid, f.var_name, f.field, f.type, g.groupid, COUNT(*) AS qty 
  FROM extra_field_values AS v
  INNER JOIN extra_fields AS f ON f.fieldid=v.fieldid
  INNER JOIN extra_fields_groups_item AS g ON g.itemid=v.fieldid
  WHERE f.module = 'listings'
   AND f.itemid IN (7,8,10,12,15,16,17,18,19,20,21,22,23,24,25,26) 
   AND f.settings LIKE '%"search";s:1:"1"%' 
  GROUP BY v.value, v.fieldid
  ) as x
GROUP BY x.fieldid