找到 4219 篇文章 关于 MySQLi
64 次浏览
我们可以创建一个函数,该函数接受日期值作为其参数,并返回年、月和日的差值,如下所示mysql> CREATE FUNCTION date_difference(Date1 DATE, date2 DATE) RETURNS VARCHAR(30) -> RETURN CONCAT( -> @years := TIMESTAMPDIFF(YEAR, date1, date2), IF (@years = 1, ' year, ', ' years, '), -> @months := TIMESTAMPDIFF(MONTH, DATE_ADD(date1, INTERVAL @years YEAR), date2), IF (@months = 1, ' month, ', ' months, '), -> @days := TIMESTAMPDIFF(DAY, DATE_ADD(date1, INTERVAL @years * 12 + @months MONTH), date2), IF (@days = 1, ' day', ' days')) ; Query OK, 0 ... 阅读更多
137 次浏览
SELECT 命令用于从 MySQL 数据库中获取数据。您可以在 mysql> 提示符下以及在任何脚本(如 PHP)中使用此命令。语法以下是 SELECT 命令的通用语法,用于从 MySQL 表中获取数据:SELECT field1, field2, ...fieldN FROM table_name1, table_name2... [WHERE Clause] [OFFSET M ][LIMIT N]关于 SELECT 语句的一些要点如下:我们可以使用一个或多个以逗号分隔的表,使用 WHERE 子句包含各种条件,但 WHERE 子句是 SELECT 命令的可选部分。我们可以获取一个或多个字段在 ... 阅读更多
1K+ 次浏览
众所周知,DATEDIFF() 函数用于获取两个日期之间的天数差。因此,它很有可能返回负值。mysql> select * from differ; +------------+-------------+ | OrderDate | WorkingDate | +------------+-------------+ | 2017-10-22 | 2017-10-29 | | 2017-10-25 | 2017-10-30 | | 2017-10-25 | 2017-11-30 | +------------+-------------+ 3 rows in set (0.00 sec)上述查询将返回表“differ”中的值。现在,如果有人想获取 OrderDate 和 WorkingDate 之间的差值,则输出将为负值,如下所示:mysql> Select DATEDIFF(OrderDate, WorkingDate)AS 'DIFFERENCE IN DAYS' ... 阅读更多
170 次浏览
众所周知,我们可以通过 CTAS 脚本从现有表中复制数据和结构。以下示例演示了 WHERE 子句的使用mysql> Create table EMP_BACKUP2 AS SELECT * from EMPLOYEE WHERE id = 300 AND Name = 'Mohan'; Query OK, 1 row affected (0.14 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> Select * from EMP_BACKUP2; +------+-------+ | Id | Name | +------+-------+ | 300 | Mohan | +------+-------+ 1 row in set (0.00 sec)在上面的示例中,我们根据某些条件从表“Employee”创建了一个名为 EMP_BACKUP1 的表。MySQL 基于这些条件仅创建一个包含一行数据的表。
79 次浏览
借助以下示例,我们可以了解如何在 MySQL 表查询中将 MySQL INTERVAL 关键字与 EXTRACT() 函数结合使用:mysql> Select StudentName, RegDate, EXTRACT(YEAR from RegDate+INTERVAL 2 year) AS 'Two Year Interval' from testing where StudentName = 'Gaurav'; +-------------+---------------------+-------------------+ | StudentName | RegDate | Two Year Interval | +-------------+---------------------+-------------------+ | Gaurav | 2017-10-29 08:48:33 | 2019 | +-------------+---------------------+-------------------+ 1 row in set (0.02 sec)上述查询显示了如何在 MySQL 表查询中将 INTERVAL 关键字与 EXTRACT() 函数结合使用。mysql> Select EXTRACT(Year from '2017-10-22 ... 阅读更多
512 次浏览
CTAS 即“创建表为选择”脚本用于从现有表创建表。它复制表结构以及现有表中的数据。考虑以下示例,在该示例中,我们从名为“Employee”的现有表创建了一个名为 EMP_BACKUP 的表mysql> Select * from Employee; +------+--------+ | Id | Name | +------+--------+ | 100 | Ram | | 200 | Gaurav | | 300 | Mohan | +------+--------+ 3 rows in set (0.00 sec)上述查询显示了表“Employee”中的数据,下面的查询 ... 阅读更多
71 次浏览
在为行插入值时,我们可以使用从任何表达式、函数等计算出的自计算输出的值。以下是一个演示它的示例:mysql> Insert into employee(id, emp_name)Select 1+1, Concat_ws(' ','Gaurav', 'Kumar'); Query OK, 1 row affected (0.04 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> Select * from employee; +------+--------------+ | id | emp_name | +------+--------------+ | 2 | Gaurav Kumar | +------+--------------+ 1 row in set (0.00 sec)
6K+ 次浏览
在插入新行的情况下,我们可以将条件插入(即 WHERE 子句)与 INSERT INTO 命令一起使用。可以通过以下方式完成:借助虚拟表在这种情况下,我们根据某些条件插入虚拟表中的值。语法如下:INSERT INTO table_name(column1, column2, column3, …) Select value1, value2, value3, … From dual WHERE [conditional predicate];示例mysql> Create table testing(id int, item_name varchar(10)); Query OK, 0 rows affected (0.15 sec) mysql> Insert into testing (id, item_name)Select 1, 'Book' From Dual Where 1=1; Query OK, 1 row affected (0.11 sec) ... 阅读更多
97 次浏览
我们可以借助 MySQL 返回的自计算输出将值插入表中。在这种情况下,我们不需要使用虚拟“dual”表。语法如下:INSERT INTO table_name(column1, column2, column3, …) Select value1, value2, value3, …;示例在下面的示例中,我们使用 MySQL 自计算输出将值插入“testing”表中。mysql> Create table testing(id int, item_name varchar(10)); Query OK, 0 rows affected (0.15 sec) mysql> Insert into testing (id, item_name)Select 1, 'Book'; Query OK, 1 row affected (0.11 sec) Records: 1 Duplicates: 0 Warnings: 0 ... 阅读更多