首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询,以显示2列中的事件链接列表

MySQL查询,以显示2列中的事件链接列表
EN

Stack Overflow用户
提问于 2011-11-29 14:08:22
回答 1查看 215关注 0票数 0

Joomla 1.5.25

Fabrik 2.1

PHP5.3.8

  • Fabrik表:jos_bully_table
  • 列:bully_concat_name
  • 列:datetime

我用下面的PHP代码计算bully_concat_name在表中出现的次数,它更新了b_name_count列:

代码语言:javascript
复制
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

$sql = <<<EOL
UPDATE jos_bully_table AS jbt1
INNER JOIN (
SELECT jbt2.bully_concat_name, COUNT(*) AS b_name_count
FROM jos_bully_table AS jbt2
GROUP BY jbt2.bully_concat_name
) AS jbt3
ON jbt3.bully_concat_name = jbt1.bully_concat_name
SET jbt1.b_name_count = jbt3.b_name_count
EOL;

mysql_query($sql);

echo "<!-- SQL Error ".mysql_error()." -->";

然后通过使用以下代码拉出b_name_count的值来显示该#:

代码语言:javascript
复制
$rowid = JRequest::getVar('rowid');
$result = mysql_query("SELECT b_name_count FROM `jos_bully_table` WHERE id = '$rowid'") or die(mysql_error());
$row = mysql_fetch_array( $result );

echo '<div id="inc_count">';
echo '<p style="text-align: center;">';
echo $row['b_name_count'];
echo '</p>';
echo '</div>';

当名称出现在b_name_count #下的2列中时,我想显示相关日期的列表。datetime列包含如下记录: 2011-11-16 17:13:01

我想把这个日期显示为2011年11月16日(%m/%d/%Y)。

EN

回答 1

Stack Overflow用户

发布于 2011-11-29 14:40:49

首先,您确实需要研究如何使用HEREDOCs:

代码语言:javascript
复制
$sql = <<<EOL
UPDATE jos_bully_table AS jbt1
INNER JOIN (
   SELECT jbt2.bully_concat_name, COUNT(*) AS b_name_count
   FROM jos_bully_table AS jbt2
   GROUP BY jbt2.bully_concat_name
) AS jbt3
ON jbt3.bully_concat_name = jbt1.bully_concat_name
SET jbt1.b_name_count = jbt3.b_name_count
EOL;

请注意缺少\n和所有. "类型操作符,这使得查询的可读性大大提高。

至于日期问题,您没有提到列的名称(我认为),但是您可以使用MySQL的格式()函数为您进行格式化:

代码语言:javascript
复制
SELECT DATE_FORMAT(`datetimefield`, '%m/%d/%Y') ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8312103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档