可能重复:
大约一年前,我开始做网页开发者。从那时起,我就开始学习PHP,mySQL,Javascript,jQuery等等。我想我在这段时间里学到了一些东西。但是说到SQL,我真的是个菜鸟。我只是做了几个选择,插入,更新,并使用一些函数,如SUM或UNIX_TIMESTAMP等。
我遇到了联接函数,它似乎非常有用,但我看不到使用JOIN或WHERE子句“连接”数据的区别。
我读过关于加入的 (西班牙语)。我看不出它有多有用。例如:
假设此数据集:
id nombre id nombre
-- ---- -- ----
1 Pirata
我使用sql查询查看表中的数据:
SELECT created, name, surname, phone, email, address
FROM jos_registration_form
ORDER BY created DESC
这将返回表前面的列表,其中包含创建的第一列名称、第二列名称、第三列名称,等等。
是否有一条sql语句可以只在前面将列名更改为其他(而不是mysql数据库中的)?
例如,在前面查看创建的第一个列名,希腊语Δημιουργία,第二个列名,希腊语Όνομα等等。
我知道这可以用php等来完成,但是我想用sql来完成。
下午好,我刚注意到了一些事情。例如,如果我编写带有联接的mysql查询:
Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar WHERE Car="Brand"
它将归还那辆等同于“品牌”的汽车。
但我注意到,如果我以这种方式构造查询:
Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar AND Car="Brand"
它将返回与前面的查询相同的内容。注意到我用了,而不是在哪里。我还在PHP查询中
我正在努力将mysql查询转换为sql server,但是当我运行该查询时,它给了我错误The multi-part identifier "e.EpVisitCount" could not be bound.,这里我已经发布了我的两个查询--请您查看一下,为什么它在sql server中给了我错误?
Mysql查询(工作良好):
UPDATE
tb_EpVisitRange as v left JOIN tb_Episode as e ON (v.company_id = e.CustID) AND (v.CMW = e.CMW)
我想知道是否有一种方法可以在mySQL查询中使用if条件?我想要做的是避免有多个查询。
我的想法是:
SELECT company, color, stock FROM mytable
if color = 'blue' : WHERE company = 5
if color = 'red' : WHERE stock = 'yes'
AND status = 'available'
order by color ASC
谢谢
我有一个包含以下列的MySQL表
id
action
ip
操作列可以包含多个值,例如(编辑、删除、添加等)
我想要执行一个MySQL查询,并根据我将提供的操作值获取一些数据,不管该操作值是否存在。
例如,以下查询
SELECT ip,COUNT(*) as total_actions FROM table
WHERE action IN ('edit','delete') group by ip;
此查询基于action列返回数据,例如,如果没有edit action条目,则不会在结果中打印。
相反,对于我在in语句中写入的值的,我希望得到它们的计数值和,对
我有下面的查询,我想显示masini >2的结果,但是当我运行查询时,它说'masini‘不是一个现有的列,而是我在第一行上定义的自定义列的名称。我是MySQL的新手。谁能给我指明正确的方向?这是我的疑问:
SELECT pers.serie_buletin AS persoana, COUNT(prop.serie_buletin) AS masini
FROM persoana pers
JOIN proprietate prop
ON pers.id_persoana = prop.serie_buletin
WHERE masini > 2
GROUP BY p
在一个查询中拥有多个MySQL Count实例还是对每个计数实例进行单独的查询会更快吗?如果是这样,我将如何组合这两个查询?
$msd_call_qry = "SELECT count(event) AS MissedCalls FROM queuelogdb.queue_log WHERE (agent = '$agent_name[0]' OR agent = '$agent_name[1]')"
. " AND (event = 'ABANDON' OR event = '
我在mysql中的表有特殊的数据标记(startdata)。这是事件开始的日期。将旧事件存储在数据库中,但我不需要它们出现在MySQL应答中。那么,有没有办法向数据库发送包含我需要的参数的查询呢?(例如,没有显示开始日期早于今天的行)。
现在我的代码看起来是:
$res3 = mysqli_query($con,"SELECT * FROM raspisanie WHERE
instr='" . $instrument . "' AND school IN(" . $array2 . ")
AND type='regular
我有一个SQL查询,如下所示。
SELECT A.a, count(B.id)
FROM TableA A inner join TableA B on A.referId = B.id
WHERE A.id in (123,2424,232...)
GROUP BY A.id
执行此查询时
行首先使用where子句进行筛选,然后执行联接,或者
首先执行联接,然后对行进行筛选?
我正在MySQL服务器上运行这个查询。假设TableA包含百万行。有没有其他有效的方法来写这个查询?
我正在执行这个查询
$sql=mysql_query("SELECT c.*,
(SELECT Count(b.text) From tbl_people_comment Where b.idsms=c.id AND b.visible=1) AS ccomment
FROM tbl_peoplesms AS c
INNER JOIN tbl_people_comment AS b ON b.idsms= c.id
WHERE c.visible=1
GROUP BY c.id");
我试图让它在php中返回类似的内容
[
{
"id
在一个查询中可以这样做吗?例如,我有一个名为log的表,其中包含以下列: id、epoch、username、msg。
我需要搜索来自某个用户的消息,如下所示:
select * from logs where username = 'bob'
现在,我希望在一定的时间范围内从该消息中选择来自bob的所有消息。
我知道在PHP中使用for循环可以很容易地做到这一点,但是我必须使用mySQL。
我原本想做这样的事情:
select * from logs where FROM_UNIXTIME(epoch) between
(select FROM_UNIXTIME(epoch)
我有一张桌子
unam fnam
john alex
alex john
我想要一个查询返回true,如果unam 'john‘== fname 'alex’或unam 'alex‘== fname 'john’
我不知道如何在一个查询中做到这一点。我的代码
$re = mysql_query("SELECT 1 FROM tab WHERE unam='john' and fnam='alex' LIMIT 1");
$ir = mysql_query("SELECT 1
我有两个InnoDB表,我们叫它们tableD和tableC。TableD有一个名为id的varchar主键的行。TableC具有BIGINT主键seq和另一个varchar列f_id的行。F_ id的值不是唯一的,它对应于tableC中的id列。
我试图实现的是从tableD中删除所有行,除了那些与tableC中任何行中的f_id列匹配的行之外,这些行的seq列值大于一个特定值。
下面是我现在的查询:
delete d from tableD as d
where d.id not in (
select c.f_id from tableC as c
where seq&g
在使用Hibernate条件时,我需要在ON子句中应用另一个条件。
我正在编写我的MySQL,我无法找到在Hibernate标准中转换它的任何合理方法。
SELECT s.StudentID AS StudentID, sc.CourseID AS CourseID
FROM Student s
LEFT JOIN StudentCourse sc ON
(sc.StudentID = s.StudentID AND sc.CourseID = 'XXX')
我在这个查询中所做的事情
我想要所有的学生名单要么注册了指定的课程,要么没有。
如果我
我正在使用带有JSON函数的MySQL6.x,并且有以下查询,我正在尝试使用WHERE或必须限制记录集-有一个名为properties的列,它是JSON列,我需要在此json数据上使用多个条件执行搜索
SELECT JSON_EXTRACT(properties,'$.identifier') AS identifier,
JSON_EXTRACT(properties,'$.workflow_type') AS workflow_type
FROM workflow_pages HAVING workflow_type;
这将返回以
我和MySQL一起工作。让我们假设我有一个表test(id, x) --数据类型并不重要--下面的查询
SELECT id
FROM test
WHERE F(x) <= 1000;
此外,让我们假设F是一个“或多或少复杂”的函数。现在,如果将查询更改为:
SELECT id, F(x)
FROM test
WHERE F(x) <= 1000;
也就是说,我需要F(x)的结果不仅适用于WHERE条件,还需要作为SELECT子句中的输出。我能安全地假设MySQL足够聪明,只计算每一行一次吗?
(如果需要这些信息,在我的具体情况下,我使用MySQL空间函数ST_WITHIN、ST_G
问题
我有一个大约200万行( 115 MB)的表,它即将变得更大。当在表上运行一些实用程序脚本时,我注意到我的一个查询花费了很长时间(15+秒),而一个几乎相同的查询用了不到半秒的时间。以下是查询:
查询1:
SELECT `id` FROM `my_table` WHERE `my_column`='test' ORDER BY `id` LIMIT 28000, 1000
Execution time: 0.204 seconds
查询2:
SELECT `id` FROM `my_table` WHERE `my_column`='test' ORDER
我在读mysql ,
这是手册中的一个例子。
示例创建一个Multiple-Column Indexes,索引为(last_name,first_name)
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name)
);
手册上说这个查询将使用索引。
SELECT * FROM test
WHERE
我目前有以下问题:
我有一个MySQL查询:
SELECT account.id as id, `cname`, `username`, `state`, `dow`
FROM account
LEFT JOIN zeitplanung
ON account.id = zeitplanung.user_id
WHERE account.hide = 0
and ifnull(zeitplanung.kw,43) = 43
and ifnull(zeitplanung.year, 2017) = 2017;
它返回用户名和提到的值,如果我选择了正确的年份和kw,如果联接表中没有条目,
我在MySQL中使用了如下所示的查询。我得到了我想要的结果。
select TABLE_NAME,count(column_name) as no_of_columns from information_schema.columns where TABLE_SCHEMA = 'testing' and TABLE_NAME NOT REGEXP 'temp|bkup|RemoveMe|test' group by TABLE_NAME
当我在sqoop导入语句中使用相同的查询时,结果是不同的。
sqoop导入语句如下所示。
sqoop import --conn