找到关于数据库的6705 篇文章
1K+ 次浏览
您可以使用 MySQL 的 group_concat() 函数创建 JSON 格式。语法如下:SELECT yourColumnName1, GROUP_CONCAT(CONCAT('{anytName:"', yourColumnName, '", anyName:"', yourColunName, '"}')) anyVariableName from yourTableName group by yourColumnName1;为了理解上述语法,让我们先创建一个表。创建表的查询如下:mysql> create table JsonFormatDemo -> ( -> UserId int, -> UserName varchar(100), -> UserEmail varchar(100) -> ); … 阅读更多
5K+ 次浏览
要从新闻表中选择过去 6 个月的记录,请使用 MySQL 的 date_sub() 函数,因为新闻记录是按日期排列的。语法如下:select *from yourTableName where yourDateTimeColumnName >= date_sub(now(), interval 6 month);为了理解上述概念,让我们先创建一个只有新闻 ID 和发布时间的 NEWS 表:mysql> create table Newstable -> ( -> NewsId int, -> NewsDatetime datetime -> ); … 阅读更多
1K+ 次浏览
您可以使用预处理语句来使用另一个表中的 MAX 值重置 MySQL 自动递增。语法如下:set @anyVariableName1=(select MAX(yourColumnName) from yourTableName1); SET @anyVariableName2 = CONCAT('ALTER TABLE yourTableName2 AUTO_INCREMENT=', @anyVariableName1); PREPARE yourStatementName FROM @anyVariableName2; execute yourStatementName;上述语法将使用另一个表中的最大值重置 MySQL 自动递增。为了理解上述语法,让我们创建两个表。第一个表将包含记录,第二个表将使用第一个表中的最大值作为自动递增属性。创建表的查询如下:mysql> create table FirstTableMaxValue … 阅读更多
3K+ 次浏览
以下是 MySQL 存储过程中使用 FOR 循环的语法:delimiter // CREATE procedure yourProcedureName() wholeblock:BEGIN DECLARE anyVariableName1 INT ; Declare anyVariableName3 int; DECLARE anyVariableName2 VARCHAR(255); SET anyVariableName1 =1 ; SET anyVariableName3 =10; SET anyVariableName2 = ''; loop_label: FORLOOP IF anyVariableName1 > anyVariableName3 THEN LEAVE loop_label; END IF; SET anyVariableName2 = CONCAT(anyVariableName2 ,anyVariableName1 ,', '); SET anyVariableName1 = anyVariableName1 + … 阅读更多
4K+ 次浏览
使用 select 和 order by 按降序格式化日期 DD/MM/YYYY。语法如下:SELECT *FROM yourTableName where yourDatetimeColumnName order by STR_TO_DATE(yourDatetimeColumnName, ’%d/%m%Y’) desc;上述语法将按降序显示日期。为了理解上述语法,让我们先创建一个表。创建表的查询如下:mysql> create table DateFormatWithSelect -> ( -> UserId int, -> UserName varchar(100), -> UserLoginDatetime varchar(100) -> ); … 阅读更多
320 次浏览
要获取今天登录的用户,请使用以下语法。这里我们假设您的 datetime 字段是字符串类型:select yourColumnName1, yourColumnName2, yourColumnName3, ...N from youTableName WHERE STR_TO_DATE(yourColumnName1, ‘format’') =CURDATE();假设我们有以下“DateEqualToday”表,其中存储了用户的姓名和登录日期:+------+------------+-----------+------------+ | Id | First_Name | Last_Name | LoginDate | +------+------------+-----------+------------+ | 1 | James | Smith | 20-12-2018 | | 2 | Carol | Taylor | 21-12-2017 | | 3 | John … 阅读更多
359 次浏览
使用 UPDATE 命令更新单个单元格的数据。语法如下:UPDATE yourTableName yourColumnName=yourNewValue where yourColumnName=yourOldValue;为了理解上述概念,让我们先创建一个表。创建表的查询如下:mysql> create table changeCellsData -> ( -> Id int, -> Name varchar(100), -> Age int -> ); … 阅读更多
7K+ 次浏览
要遍历表中的所有行,请在 MySQL 中使用存储过程。语法如下:delimiter // CREATE PROCEDURE yourProcedureName() BEGIN DECLARE anyVariableName1 INT DEFAULT 0; DECLARE anyVariableName2 INT DEFAULT 0; SELECT COUNT(*) FROM yourTableName1 INTO anyVariableName1; SET anyVariableName2 =0; WHILE anyVariableName2 < anyVariableName1 DO INSERT INTO yourTableName2(yourColumnName, ...N) SELECT (yourColumnName1, ...N) FROM yourTableName1 LIMIT anyVariableName2, 1; SET anyVariableName2 = anyVariableName2+1; END WHILE; End; //为了理解上述语法,让我们创建两个表,一个包含记录,另一个表将使用存储过程从循环中获取记录。下面的查询… 阅读更多
2K+ 次浏览
now() 函数返回一个常量时间,该时间显示任何语句开始执行的时间。从 MySQL 5.0.13 开始,sysdate() 函数返回执行语句的确切日期时间。假设您在触发器或存储过程中使用 now() 更新 datetime,则 now() 方法将返回触发器和存储过程开始执行的时间。以下是使用 now() 更新的演示。让我们先创建一个表。创建表的查询如下:mysql> create table NowDemo -> ( -> DueDateTime datetime -> ); … 阅读更多
8K+ 次浏览
使用 CASE WHEN/THEN/ELSE 进行批量更新的语法如下:UPDATE yourTableName set yourColumnName=case when yourColumnName=Value1 then anyUpdatedValue1 when yourColumnName=Value2 then anyUpdatedValue2 when yourColumnName=Value3 then anyUpdatedValue3 when yourColumnName=Value4 then anyUpdatedValue4 else yourColumnName end;为了理解上述语法,让我们先创建一个表。创建表的查询如下:mysql> create table CaseUpdateDemo -> ( -> Id int, -> Name varchar(100) -> ); … 阅读更多