这是我的查询:
$query_products = "
SELECT
p.Id
, p.product_sku
, p.product_name
, p.hide_product
, p.new_style_image
, p.ext
, p.product_thumb_image
, p.product_full_image
, SUM(s.stoc_final)
, s.active
FROM
produse p
LEFT JOIN stoc_intern s ON p.product_sku=s.cod_website
WHERE
(
(" . $product_sku_search . ")
OR (" . $product_name_search . ")
OR (" .$product_culoare_search . ")
)
AND p.hide_product != 'd'
GROUP by p.product_sku
ORDER BY SUM(s.stoc_final) DESC
LIMIT " . $items_per_page . "
OFFSET " . $_offset . "";
Run Code Online (Sandbox Code Playgroud)
我的问题是:我选择的最后一个字段,即 s.active 字段,在表中的值是“n”,但是当我显示它时,它显示为空 ( echo $s_active);如果我s.active用 other field更改字段s.description,它将起作用。
此外,在“ stoc_intern”表中,我选择的某些字段显示良好,有些不显示(即使表数据包含信息)。
这是为什么?
a_horse_with_no_name 已经提供了答案。
但是要禁用这个“没人能真正理解的那些愚蠢的 MySQL“功能之一”,您可以sql_mode对其进行更严格的设置。考虑my.cnf配置文件中的以下设置:
[mysqld]
sql_mode = ONLY_FULL_GROUP_BY
Run Code Online (Sandbox Code Playgroud)
请参阅文档。这将不允许您引用非分组列,除非使用聚合函数。
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |