執行 sql 報錯未緩衝查詢,錯誤碼 2014

来源:https://www.cnblogs.com/zongsir/archive/2019/02/28/2014-sql-HY000-wei-huan-chong-cha-xun-cuo-wu.html
-Advertisement-
Play Games

##sql語句為```SELECT COUNT(id) AS tp_count FROM `tableName` WHERE `status` = 0 AND `source` = 1 AND ( `end_time`-`add_time` > 2592000 AND `end_time`-`add... ...


sql語句為

SELECT
    COUNT(id) AS tp_count 
  FROM
    `tableName` 
  WHERE
    `status` = 0 
    AND `source` = 1 
    AND (
      `end_time`-`add_time` > 2592000 
      AND `end_time`-`add_time` <= 5184000 
    ) LIMIT 1

發生報錯如下

PDOException:SQLSTATE [HY000]:常規錯誤:2014在其他未緩衝的查詢處於活動狀態時無法執行查詢。
考慮使用PDOStatement :: fetchAll()。
或者,如果您的代碼只是針對mysql運行,則可以通過設置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY屬性來啟用查詢緩衝。

在google查找報錯信息,各種改配置,優化 sql,沒有明確辦法

在阿裡雲 SDN上執行 sql,發現報錯

Data truncation: BIGINT UNSIGNED value is out of range in '(`end_time`-`add_time` > 2592000 
     AND `end_time`-`add_time` <= 5184000 
   )'

經過排查發現,有的數據中end_time小於 add_time,所以 sql 條件運算為負值,產生 BIGINT UNSIGNED 報警,於是修改 sql 如下

SELECT
    COUNT(id) AS tp_count 
  FROM
    `tableName` 
  WHERE
    `status` = 0 
    AND `source` = 1 
    AND `end_time` > `add_time`
    AND (
      `end_time`-`add_time` > 2592000 
      AND `end_time`-`add_time` <= 5184000 
    ) LIMIT 1

則問題解決


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 主從簡介 在現代企業中,數據顯得尤為重要,而存儲數據的資料庫選擇又五花八門,但無論是何種資料庫,均存在著一種隱患。 當數據規模非常大,讀寫量也很高時,一臺資料庫已經無法負擔全部讀寫任務,就需要多台資料庫同時運作分擔負載。 主從作用 實時災備,用於故障切換 讀寫分離,提供查詢服務 備份,避免影響業務 ...
  • 一個由 Python 編寫的強大的配置管理解決方案。儘管市面上已經有很多可供選擇的配置管理解決方案,但他們各有優劣,而 ansible 的特點就在於它的簡潔。 讓 ansible 在主流的配置管理系統中與眾不同的一點便是,它並不需要你在想要配置的每個節點上安裝自己的組件。同時提供的一個優點在於,如果 ...
  • 前言: 更新項目的時候需要將更改的文件一一上傳,這樣比較麻煩,用版本控制器git +rsync 搭建一個發佈伺服器,以後發佈文件非常方便 首先說下,我這邊的更新流程,本地寫完之後,git push 到測試服,測試服測試完畢,運行腳本rsync.sh(此腳本先將代碼 git pull到測試服,再rsy ...
  • 1. ldd - 檢查依賴庫是否存在問題 問題:ssh連接不上,之前一直沒有問題,最近別人安裝了其他桌面(系統Ubuntu) 解決:通過ps -ef | grep ssh查看進程,發現沒有啟動; 重新安裝(sudo apt-get install openssh-server --reinstall ...
  • // TmpThread.cpp : 定義控制台應用程式的入口點。 // #include "stdafx.h" #include #include using namespace std; //線程函數 DWORD WINAPI StartAddress(LPVOID lpParameter) {... ...
  • Linux的文件能否找到文件的創建時間取決於文件系統類型,在ext4之前的早期文件系統中(ext、ext2、ext3),文件的元數據不會記錄文件的創建時間,它只會記錄訪問時間、修改時間、該表時間。 Access 是訪問時間 Modify 是修改時間 Change 是改變時間 所以,對於ext、ext... ...
  • 前提:將磁碟中未分區磁碟進行分區操作 https://www.cnblogs.com/guoxiangyue/p/10033367.html 然後進行vg擴容 1 pvcreate /dev/sdc 2 lvs 3 vgextend centos /dev/sdc 4 lvextend -L +99 ...
  • 一、概述 docker的網路驅動有很多種方式,按照docker官網給出的網路解決方案就有6種,分別是:bridge、host、overlay、macvlan、none、Network plugins,每個網路都有自己的特點,當然應用場景也不同,比如當有多台主機上的docker容器需要容器間進行跨宿主 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...