MySQL- sql語句基礎

文章目錄

    • 1.select后對表進行修改(delete)
    • 2.函數GROUP_CONCAT()
    • 3.使用正則表達式
    • 3.DATE_FORMAT()
    • 4.count() 加條件

1.select后對表進行修改(delete)

報錯:You can’t specify target table ‘Person’ for update in FROM clause
原因:mysql不能在同一語句中先select出同一表中的某些值,然后對這個表做修改
錯誤寫法

delete from Person 
where id not in(select min(id) idfrom Person group by email 
)

解決方法:添加臨時表

正確寫法

delete from Person 
where id not in(select * from (select min(id) idfrom Person group by email ) t1
)

2.函數GROUP_CONCAT()

我們可以使用函數 GROUP_CONCAT() 將多行中的多個值組合成一個字符串。下面顯示了 GROUP_CONCAT() 函數的語法:

GROUP_CONCAT(DISTINCT 字段 ----去重ORDER BY 字段 ----ASC/DESCSEPARATOR sep ---分隔符: SEPARATOR ','
);

用例

select sell_date ,count(distinct product) num_sold ,group_concat(distinct product separator ',') products
from Activities 
group by sell_date 

在這里插入圖片描述

3.使用正則表達式

思路
一般來說,如果你被要求匹配一個字符串,應該最先想到寫一個正則表達式模式進行匹配。

正則表達式提供各種功能,以下是一些相關功能:

正則表達式書寫格式
^:表示一個字符串或行的開頭
[a-z]:表示一個字符范圍,匹配從 a 到 z 的任何字符。
[0-9]:表示一個字符范圍,匹配從 0 到 9 的任何字符。
[a-zA-Z]:這個變量匹配從 a 到 z 或 A 到 Z 的任何字符。請注意,你可以在方括號內指定的字符范圍的數量沒有限制,您可以添加想要匹配的其他字符或范圍。
[^a-z]:這個變量匹配不在 a 到 z 范圍內的任何字符。請注意,字符 ^ 用來否定字符范圍,它在方括號內的含義與它的方括號外表示開始的含義不同。
[a-z]*:表示一個字符范圍,匹配從 a 到 z 的任何字符 0 次或多次。
[a-z]+:表示一個字符范圍,匹配從 a 到 z 的任何字符 1 次或多次。
.:匹配任意一個字符。
\.:表示句點字符。請注意,反斜杠用于轉義句點字符,因為句點字符在正則表達式中具有特殊含義。還要注意,在許多語言中,你需要轉義反斜杠本身,因此需要使用\.。
$:表示一個字符串或行的結尾。

例子

SELECT user_id, name, mail
FROM Users
-- 請注意,我們還轉義了`@`字符,因為它在某些正則表達式中具有特殊意義
WHERE mail REGEXP '^[a-zA-Z][a-zA-Z0-9_.-]*\\@leetcode\\.com$';

3.DATE_FORMAT()

將日期值格式化為特定格式,請使用DATE_FORMAT函數。 DATE_FORMAT函數的語法如下:

DATE_FORMAT(date,format);  ---date 字段,format 需要格式
DATE_FORMAT(trans_date,'%Y-%m')  ---%Y-%m 2023-08
formatdate
%D英文后綴如:0th, 1st, 2nd等的一個月之中的第幾天
%d如果是1個數字(小于10),那么一個月之中的第幾天表示為加前導加0, 如:00, 01,02, …31
%H24小時格式的小時,前導加0,例如:00,01…23
%h小時,12小時格式,帶前導零,例如:01,02 … 12
%Y表示年份,四位數,例如2000,2001
%y表示年份,兩位數,例如00,01
%m具有前導零的月份名稱,例如:00,01,02,… 12
%M月份全名稱,例如:January, February,…December
formatdate
%Y-%m-%d2017/04/30
%Y-%m2017/04

4.count() 加條件

  1. COUNT( state=‘approved’ OR NULL ) >需要在后面 + or null

  2. COUNT( IF (state = ‘approved’, 1, NULL ) )

需要注意的是,count只有在字段數據為NULL時才不計入數量,如果IF (state = ‘approved’, 1, NULL ) 改為IF (state = ‘approved’, 1, 0 ) ,那么非 approved的數據也會被計入其中導致錯誤。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43514.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43514.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43514.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

proteus結合keil-arm編譯器構建STM32單片機項目進行仿真

proteus是可以直接創建設計圖和源碼的,但是源碼編譯它需要借助keil-arm編譯器,也就是我們安裝keil-mdk之后自帶的編譯器。 下面給出一個完整的示例,主要是做一個LED燈閃爍的效果。 新建工程指定路徑,Schematic,PCB layout都選擇默…

【Docker】 使用Docker-Compose 搭建基于 WordPress 的博客網站

引 本文將使用流行的博客搭建工具 WordPress 搭建一個私人博客站點。部署過程中使用到了 Docker 、MySQL 。站點搭建完成后經行了發布文章的體驗。 WordPress WordPress 是一個廣泛使用的開源內容管理系統(CMS),用于構建和管理網站、博客和…

單例設計模式精講(餓漢式和懶漢式實現的重要方法)

目錄 什么叫做單例模式? 餓漢式和懶漢式的區別? 餓漢式-方式1(靜態變量方式) 餓漢式-方式2(靜態代碼塊方式) 懶漢式-方式1(線程不安全) 懶漢式-方式2(線程安全&…

FifthOne:用于矢量搜索的計算機視覺接口

一、說明 數據太多了。數據湖和數據倉庫;廣闊的像素牧場和充滿文字的海洋。找到正確的數據就像大海撈針一樣!如果你喜歡開源機器學習庫 FiftyOne,矢量搜索引擎通過將復雜數據(圖像的原始像素值、文本文檔中的字符)轉換為稱為嵌入矢…

PHP報錯:未定義常量的解決方法!

PHP報錯:未定義常量的解決方法! 在PHP編程中,我們經常會遇到常量未定義的錯誤。這種錯誤通常會在代碼中使用未定義的常量時發生。本文將介紹常量的概念以及如何解決未定義常量的問題。 首先,讓我們來了解什么是常量。在PHP中&am…

大數據平臺運維實訓室建設方案

一、概況 本實訓室的主要目的是培養大數據平臺運維項目的實踐能力,以數據計算、分析、挖掘和可視化的案例訓練為輔助。同時,實訓室也承擔相關考評員與講師培訓考試、學生認證培訓考試、社會人員認證培訓考試、大數據技能大賽訓練、大數據專業課程改革等多項任務。 實訓室旨在培…

無人機跟隨一維高度避障場景--邏輯分析

無人機跟隨一維高度避障場景--邏輯分析 1. 源由2. 視頻3. 問題3.1 思維發散3.2 問題收斂 4. 圖示4.1 水平模式4.2 下坡模式4.3 上坡模式4.4 碰撞分析 5. 總結5.1 一維高度避障場景5.2 業界跟隨產品5.3 APM集成跟隨示意圖一:示意圖二:示意圖三&#xff1a…

Java算法_ 驗證二叉搜索樹(LeetCode_Hot100)

題目描述: 給你一個二叉樹的根節點 ,判斷其是否是一個有效的二叉搜索樹。root 有效 二叉搜索樹定義如下: 節點的左子樹只包含 小于 當前節點的數。 節點的右子樹只包含 大于 當前節點的數。 所有左子樹和右子樹自身必須也是二叉搜索樹。 獲得…

【TypeScript】tsc -v 報錯 —— 在此系統上禁止運行腳本

在 VS Code 終端中執行 tsc -v ,報錯 —— 在此系統上禁止運行腳本 然后 windows x ,打開終端管理員,出現同樣的問題 解決方法: 終端(管理員)執行以下命令: 出現 RemoteSigned 則代表更改成功…

11,模板泛化、模板特化、所占字節數、繼承實現模板展開、using循環命名展開可變參數

模板泛化、模板特化、所占字節數、繼承實現模板展開、using循環命名展開可變參數 模板泛化模板特化模板全特化通過模板偏特化獲取類型所占字節數通過模板偏特化和宏獲取類型所占字節數...ParamTypes和ParamTypes...的區別 通過繼承實現模板展開using 通過using循環命名的方式來…

開發一個文生圖的功能

文章目錄 效果開發環境原理核心代碼代碼倉庫問題效果 開發環境 Python 3.10PyCharm原理 借助開源項目stable-diffusion,通過該項目封裝python庫diffusers,可以輕易的實現文生圖的功能。 關于更多diffusers的功能請訪問:https://huggingface.co/docs/diffusers/index 核心代…

css樣式表屬性

文章目錄 css樣式表屬性colorbackground-colorfont-sizefont-weightfont-familyfont-styletext-decorationtext-indentline-height(line-height的概念)width、heightletter-spacingtext-aligndirectionwriting-modefont-variantborder-radiusopacitycursorvertical-alignmin-wi…

【數據結構與算法】十大經典排序算法-歸并排序

🌟個人博客:www.hellocode.top 🏰Java知識導航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ?如有問題,歡迎指正&#…

如何用輸入函數為數組賦值

在編寫程序時我們經常使用數組,而數組的大小可能是很大的但是我們并不需要為每個元素都自己賦值,我們可能會自定義輸入數組元素個數,我們應該如何實現通過輸入函數為數組賦值呢? 目錄 第一種: 第二種: 第一…

大數據bug-sqoop(二:sqoop同步mysql數據到hive進行字段限制。)

一:sqoop腳本解析。 #!/bin/sh mysqlHost$1 mysqlUserName$2 mysqlUserPass$3 mysqlDbName$4 sql$5 split$6 target$7 hiveDbName$8 hiveTbName$9 partFieldName${10} inputDate${11}echo ${mysqlHost} echo ${mysqlUserName} echo ${mysqlUserPass} ec…

OpenCV之remap的使用

OpenCV中使用remap實現圖像的重映射。 重映射是指將圖像中的某一像素值賦值到指定位置的操作:g(x,y) f ( h(x,y) ), 在這里, g( ) 是目標圖像, f() 是源圖像, 而h(x,y) 是作用于 (x,y) 的映射方法函數。為了完成映射過程, 需要獲得一些插值為…

TypeError: a bytes-like object is required, not ‘str‘

raceback (most recent call last): File "D:\pycharmcode\client.py", line 12, in <module> tcp_socket.send(send_data) TypeError: a bytes-like object is required, not str 使用socket進行ubuntu與windows通信時&#xff0c;發送數據時報了以上錯…

LeetCode 面試題 01.04. 回文排列

文章目錄 一、題目二、C# 題解 一、題目 給定一個字符串&#xff0c;編寫一個函數判定其是否為某個回文串的排列之一。 回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。 回文串不一定是字典當中的單詞。 點擊此處跳轉題目。 示例1&#xff1a; 輸入&…

CSS3:圖片邊框

簡介 圖片也可以作為邊框&#xff0c;以下是實例演示 注意 實現該效果必須添加border樣式&#xff0c;且必須位于border-image-socure之前否則不會生效 實例 <html lang"en"><head><style>p {width: 600px;margin: 200px auto;border: 30px soli…

maven工具-maven的使用-鏡像倉庫、本地倉、IDEA使用maven

Maven 一、為什么使用maven 添加第三方jar包jar包之間的依賴關系處理jar包之間的沖突獲取第三方jar包將項目拆分成多個工程模塊實現項目的分布式部署 二、maven簡介 ? Maven項目對象模型(POM)&#xff0c;可以通過一小段描述信息來管理項目的構建&#xff0c;報告和文檔的…