SQL 查询:按 ntext 字段分组

2024-05-04

我有以下查询,它基本上检索销量最高的 5 本书:

    select top 5 count(id_book_orddetails) 'books_sold', bk.*
    from orderdetails_orddetails ord inner join books_book bk
    on ord.id_book_orddetails = bk.id_book
    group by id_book, name_book,author_book,desc_book,id_ctg_book,qty_book,image_book,isdeleted 
    order by 'books_sold' desc 

问题是我收到此错误:

text、ntext 和 image 数据类型 不能比较或排序,除了 当使用 IS NULL 或 LIKE 运算符时。

In the books_book表、字段desc_book属于类型ntext,而且我确信问题就来自那里。

这是因为在我改变之前desc_book to ntext,它的类型是nvarchar它工作得很好。

我更改此字段的数据类型的原因是因为在 PHP 网站中,当我显示书籍描述(不同的 sp)时,描述被截断为大约 200-255 个字符,因此我将其更改为ntext它“解决了我的问题”(即整个desc_book终于被展示出来了)。

基本上这些是我的问题:

  1. 为什么是desc_book(nvarchar) 字段在 PHP 页面中显示时被截断?
  2. 我如何修复 SQL 查询以适应按分组分组ntext field?

只是为了记录(我认为这不是很相关),我正在使用微软 SQL Server 2005

[UPDATE]

我尝试并测试了两者比尔·卡尔文 https://stackoverflow.com/questions/384923/sql-query-grouping-by-an-ntext-field#384957提出的解决方案,它们都工作得很好。因此,我决定将计数聚合结果分组到子查询中......即 Karwin 的后一个解决方案。

这是我更新的(完全有效的)声明:

SELECT bk.*, bc.books_sold
FROM books_book bk
INNER JOIN (
    SELECT bk2.id_book, COUNT(*) books_sold
    FROM books_book bk2 
    INNER JOIN orderdetails_orddetails ord 
    ON (bk2.id_book = ord.id_book_orddetails)
    GROUP BY bk2.id_book
) bc
ON (bk.id_book = bc.id_book)
ORDER BY books_sold desc;

旧的 PHP“mssql”扩展仅支持最大 255 字节的 VARCHAR。这是一个已知的限制,这也是 Microsoft 开发新的 PHP 扩展来支持现代 SQL Server 版本的原因。

一种解决方法是将该列的存储声明为 NVARCHAR,但当您从 PHP 查询它时,请使用 CAST 将其转换为 NTEXT。然后可以返回完整的长度。

另一种选择是将列存储为 NTEXT,但仅 GROUP BYbook_id通过将计数放入子查询中:

SELECT bk.*, bc.books_sold
FROM books_book bk
  INNER JOIN (SELECT bk2.book_id, COUNT(*) books_sold
      FROM books_book bk2 INNER JOIN orderdetails_orddetails ord 
        ON (bk2.id_book = ord.id_book_orddetails)
      GROUP BY bk2.book_id) bc
    ON (bk.book_id = bc.book_id);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 查询:按 ntext 字段分组 的相关文章

  • JavaScript 中带前导零的数字发生变化

    我使用 print 语句从 php 调用 javascript 函数来打印 html 代码 并且传入一个整数 但是 在 php 中传递的值与 javascript 函数接收到的数字不匹配 我不知道为什么 这是调用 javascript 函数
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • 在 Laravel 中动态设置数据库连接和语言

    我有 3 个域指向同一个Laravel应用 我想要的是每个人都连接到自己的数据库并根据 TLD 加载自己的语言文件 我可以在哪个文件中设置这些设置 我可以直接在配置文件中执行此操作 或者可以在加载配置之前执行某些事件 我拥有的是一个简短的函
  • 尝试获取 Google accessToken

    看起来 无论我做什么 谷歌都在竭尽全力阻止我完成这个研究项目 我的项目让我使用 Google 电子表格作为数据库 并使用所述电子表格中的数据执行程序化的 Google 图片搜索 并向最终用户显示一些结果 设置说明 我开始按照此处的说明进行操
  • PHP使用auto_increment生成短唯一ID?

    我想生成一个简短的 唯一的 ID 而不必检查冲突 我目前正在做类似的事情 但是我当前生成的 ID 是随机的 并且在循环中检查冲突很烦人 并且如果记录数量显着增加 将会变得昂贵 通常担心冲突不是问题 但我想要生成的唯一 ID 是一个由 5 8
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • 选取散列第 N 个元素的最快方法

    我有一个大哈希表 带有字符串索引的数组 并正在寻找一个函数quickly从中选取第一个 理想情况下也是第 N 个 元素 array shift and reset 对于我的需求来说太慢了 UPDATE 我也不是在寻找基于引用的解决方案 该函
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • 如何解决 Laravel 8 UI 分页问题?

    我在尝试最近发布的 laravel 8 时遇到了问题 我试图找出变化是什么以及它是如何工作的 当我这样做时 我遇到了分页 laravel 8 UI 变得混乱的问题 不知何故它发生了 有人可以帮助我吗 或者经历过同样的事情 像这样我在 lar
  • PHP 错误:“无法通过引用传递参数 2”

    我只是需要有关这个 PHP 错误的帮助 我不太明白 致命错误 无法在第 13 行 web stud openup inactivatesession php 中通过引用传递参数 2
  • wordpress - 像 stackoverflow 中那样内嵌 ajax 注释

    我有一个 WordPress 博客 希望为人们提供与 stackoverflow 中添加评论相同的用户体验 有很多评论 ajax 插件 但我找不到一个可以使用的插件 它允许您在主页上内联 进入并添加评论 而无需先深入到单独的单个帖子页面 任
  • IIF(...) 不是公认的内置函数

    我正在尝试在 Microsoft SQL Server 2008 R2 中使用它 SET SomeVar SomeOtherVar IIF SomeBool value when true value when false 但我收到一个错误
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • HTML 代码中的 PHP [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我用 HTML 代码编写了 PHP div div 但这出现在输出页面中 else print 我怎样才能让PHP执行 你的文件有一个 p
  • 显式删除会话cookie会产生什么影响?

    我使用 php session 来维护用户的会话 Session 在登录后创建 在注销或超时后销毁 我需要管理面板中的一个选项来强制注销任何用户 如果他在网站上处于活动状态 我怎样才能做到这一点 我正在考虑删除临时会话文件 这应该有效地破坏
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 使用存储过程中的 Select 查询将单个变量分配给多行

    我的查询是使用 Select 将单个变量分配给多行 存储过程中的查询 例如 我从 Employee 表中获取 10 个 比如 1 到 10 个员工 ID 声明 id int select id EmpId from Employee sel
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28
  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西

随机推荐

  • as3 事件 - 类型强制失败?

    我正在将事件从孩子发送到父母 swf 它工作正常 直到我使用预加载器 swf 加载父级 然后父级停止从子级获取事件 我现在收到此错误 TypeError Error 1034 Type Coercion failed cannot conv
  • 生成适用于不同时区和数据的计划

    我正在构建一个网络应用程序 指导人们早起 它会为用户生成七十天内的起床时间表 他们输入当前的上升时间和目标上升时间 然后 上升时间每周减少一定量 直到达到目标时间 用户必须登录网站并在预定时间 签到 考虑到当前登录用户的时区和夏令时 我对如
  • 如何在 Angular 6 中编辑环境变量而不重建?

    我通常将 API URL 设置为environment ts文件 我必须将相同的版本部署到具有不同 API URL 的多个客户端 目前我正在更改环境变量后进行单独的构建 有没有办法在构建后编辑环境变量 以便我可以为每个客户端提供相同的构建
  • 什么时候空值在列中“安全”?

    设计数据库时是否存在允许列为空与 3nf 规范化的一般经验法则 我有一个表 其中的列主要由空值 85 组成 但表大小不超过 10K 记录 不是很大 它主要用于日志记录和记录保存 因此大多数事务将是插入和选择 而不是更新 我试图同时考虑性能和
  • 如何删除 RadioListTile 上的内部填充,以便可以连续使用 3 个 RadioListTiles?

    我对 Flutter 和 Dart 还很陌生 我似乎找不到关于这个特定主题的任何提示 我想把 3RadioListTiles in a Row像这样 Row children Expanded child RadioListTile
  • 为什么 Node typescript 项目的 jasmine Karma 单元测试显示覆盖范围包括依赖项?

    正如题主所说 我们项目的代码覆盖率包括节点依赖 但请注意 当我们开发和发布它时 此 npm 依赖项的源代码也是项目的一部分 这是该项目的结构 root main project 业力 conf ts src 和其他要测试并生成覆盖率的文件
  • 反应本机无法解析模块“warnOnce”

    我的英语有点生疏 对此我很抱歉 当我在 iOS 模拟器上启动 React Native 项目时 出现错误 为了排除与我的代码的任何冲突 我开始了一个新项目 react native init demo react native start
  • 向图节点添加标签

    我使用 visnetwork 库制作了下图 library tidyverse library igraph set seed 123 n 15 data data frame tibble d paste 1 n relations da
  • cv2.cv.BoxPoints(rect) 返回什么?

    rect cv2 minAreaRect largest contour rect rect 0 0 self scale down rect 0 1 self scale down rect 1 0 self scale down rec
  • 为什么 PackageInfo.signatures 字段是一个数组,什么时候这里会出现除一个值之外的其他值?

    我正在相互检查包签名以确定它们是否不兼容 针对不同的密钥库进行编译 我注意到PackageInfo signatures几乎总是包含单个条目的集合 这对我来说很有意义 我使用调试或生产密钥库构建应用程序 这决定了包的签名 这是我此时对 ap
  • 当 mysql_connect 不适用于 IIS 上的 PHP 时,不会返回任何错误消息

    我是 PHP 和 MySQL 的新手 最近在已经运行 IIS v6 的 Windows Server 2003 服务器上安装了 PHP v5 3 10 和 MySQL v 5 5 21 PHP 运行 我已经从 MySQL 5 5 命令行客户
  • Spring Security - 基于令牌的 API 身份验证和用户/密码身份验证

    我正在尝试创建一个主要使用 Spring 提供 REST API 的 Web 应用程序 并尝试配置安全方面 我正在尝试实现这种模式 https developers google com accounts docs MobileApps h
  • Terraform 蓝图上的退出条件

    我想要一个地形蓝图 在顶部满足特定条件时退出 If the var available设置为 false 我希望蓝图停止一切并抛出错误 这个的语法是什么 我在任何地方的文档文件中都找不到它 terraform 中是否存在此功能 注意 此代码
  • 需要使用 python(selenium) 抓取通过 ajax 加载的表

    我有一个page https seahawks strmarketplace com Charter Seat Licenses Charter Seat Licenses aspx有一个表 表 id ctl00 ContentPlaceH
  • CUDA 矩阵加法时序,按行与按行比较按栏目

    我目前正在学习 CUDA 并正在做一些练习 其中之一是实现以 3 种不同方式添加矩阵的内核 每个元素 1 个线程 每行 1 个线程和每列 1 个线程 矩阵是方阵 并被实现为一维向量 我只需用以下命令对其进行索引 A N row col 直觉
  • Django 中级模型用户

    我想创建一个模型 其中用户拥有多家公司一定数量的股份 看来我应该使用 Django 中间模型关系 但我不确定如何将中间模型应用到内置 Django 用户模型 目前 公司与股东 用户 之间存在多对多关系 如何为每个特定的公司股东关系添加股份数
  • 在react中读取excel文件

    我正在尝试读取 excel 文件并使用 XLSX 将其转换为 JSON 格式 但无法做到这一点 当文件位于本地计算机上时 任何人都可以建议转换方法吗 通过输入选择您本地机器的 Excel 表 在那之后 您的 Excel 数据将显示为 JSO
  • 如何创建始终在 AutoFixture 中设置预定义值的类列表?

    如何创建始终在 AutoFixture 中设置特定预定义值的类集合 Fixture Register
  • 从另一个域加载外部图像

    是否可以从另一个域加载图像 jpg png gif 并操作像素 我想当下载 复制图像时它就在我的域中 使用加载器并将内容添加到图像组件时 我在调试器中收到错误 我想这里有一些跨域策略在起作用 但在继续之前我需要更确定它是如何工作的 我想 如
  • SQL 查询:按 ntext 字段分组

    我有以下查询 它基本上检索销量最高的 5 本书 select top 5 count id book orddetails books sold bk from orderdetails orddetails ord inner join