我试图在MySQL中建立目录树的模型,我的第一个想法是:
CREATE TABLE Folder (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR (255) NOT NULL,
parentId INT UNSIGNED,
UNIQUE INDEX (name, parentId),
CONSTRAINT FOREIGN KEY (parentId) REFERENCES Folder (id)
)
但是,由于MySQL允许在唯一索引中使用多个NULL,因此在根级
我的数据库中有两个表,一个包含员工出勤率,另一个包含员工薪资。为了使雇员获得报酬,他的名字应该存在于两个表中,我的问题是如何使用雇员的id和列表名称来编写在两个表中查找的程序,这些名称发现......am与php和mysql一起工作。
考勤表
id name
1 mark
2 jhon
薪给表
id name salary
1 mark 20000$
2 jhon 3999$
假设我们有收件箱表,一次最多只能接收50条消息,为此,我使用以下代码:
$maximum_messages_in_inbox = 50;
$query1 = mysql_query("SELECT * from inbox");
if(mysql_num_rows($query1) > $maximum_messages_in_inbox)
{
echo "Message memmory if full please try again later";
}
else
{
mysql_query("insert into inbox s
我试图理解为什么MySQL没有使用正确的索引。
tb_msgs
id int PK
id_user int
id_user_friend int
sent bool
hour int
created_at date
我创建了两个索引:
Index01 => (id_user,id_user_friend) unique
Index02 => (id_user,hour,created_at)
我将执行两种类型的查询:
1) where id_user=xxx
2) where id_user=xxx and hour=x and created_at=curdate() and s
我正在使用MySQL查询来检查2个表中所有小于30天的结果。
我有表1“供应商银行明细”和表2“供应商发票”。
我试图做的是,如果从表1中找到一个结果,则回显它是什么类型的结果。
Result from Table 1 echo{some data from table} echo{some data from table}
否则,如果结果来自表2,则回显以下内容:
Result from Table 2 echo{some data from table} echo{some data from table}
否则,如果在两个回声输
我有以下SQL语句:
mysql_query("SELECT * FROM `friends` WHERE friend1='$username' OR friend2='$username' AND confirmed='1'");
我正在尝试完成的是从表friends中删除select数据,其中两个字段中的一个等于您的用户名,而confirmed字段必须等于1。重写它的最好方法是什么?
我试图用条件where子句编写一个MySql语句。就像这样:
set @price = 5000;
set @city = 1324368075;
select count(*)
from property
where case when @price is not null then
price < @price
end
and (case when @city is not null then
CityId = @city
end)
只有当变量不是null时,该变量才应该包含在
我有两个带字段的表products和users,
产品
id
name
insertedUserID
ipdatedUserID
用户
id
name
我试着用数据来获取产品的细节,
ProductID
ProductName
InsertedUser
UpdatedUser
为此,我使用了mysql查询,
SELECT Products.id as ProductID,Products.name as ProductName, Users.name as InsertedUser
LEFT JOIN Users ON Products.insertedUserID = Users.id
此
我有一个PHP脚本来记录对页面的点击,并将计数存储在表中。每页,每个会话记录一次单击。
如果在更新单击计数之前访问了某个页面。
如果页面没有单击,因此在表中不存在,则会创建一个条目,计数从1开始。
它曾经工作过,但现在它有点坏了--它正在更新对已经在DB中有条目但没有为新页面添加条目的页面的单击。
有人能看到我哪里出了问题吗?怎么解决呢?
代码;
//start a PHP session
//this prevents spamming the click count by refreshing the page
session_start();
//create current pag
下面是我的问题
SELECT * FROM wp_postmeta WHERE meta_value LIKE '".$_POST['username']."' AND meta_value LIKE '".$_POST['password']."'
问题是meta_value用户名和meta_value密码在两个不同的行中。我需要执行一个查询来同时查找这两个变量,并告诉我要查找的变量是否在这些行中。所以我希望结果返回1,其中包含一个简单的
mysql_num_rows();
我知道这很愚蠢,应该在
我对MySQL还是个新手。考虑下表:
ID INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
User_name VARCHAR(35) NOT NULL,
Full_name VARCHAR(55) NOT NULL,
User_vars VARCHAR(255) NOT NULL,
BirthDay DATE NOT NULL,
password CHAR(70) NOT NULL,
Security_hint VARCHAR(27) NOT NULL,
Email VARCHAR(225) NOT NULL,
use
如何根据另一列的值更新MySQL中的两列?
到目前为止,我的问题是:
UPDATE conversation
SET CASE WHEN user_id = 100
THEN user_status='true'
WHEN pro_user_id=100
THEN pro_user_status='true'
ELSE NULL
END
WHERE conv_id=12
我正在使用php编程语言。
我使用的是php/mysql库meekrodb。
如果满足3个字段条件,我希望更新现有行;否则插入一个新行。
问题
An "update" will not create a new row if a current one does not exist.
An "insert" will insert a redundant row even if a current row already exists.
A "replace" requires a primary key.
目前,我似乎需要执行两个查询:一个检查是否存在所涉行.如果它确实存
我有一个文件夹,其中包含两个大小的头像图像(50x宽和250px宽)。当一个新的头像上传时,我正在用两个foreach函数删除它们。 在下面的代码中,$destinationFolder是文件所在的目录,'250-'是基于图像大小的文件名的字符串前缀,$db_profileImage是最初上传图像时分配的文件名(包括文件ext,例如jpg/png)。还可以通过PDO Prepared语句从MySQL数据库中删除图像。 // DELETE PREVIOUS PROFILE IMAGES FROM FOLDER WHEN NEW IMAGE IS UPLOADED
foreach
假设我有两个表A和B,下面的查询如下:
select *
from A
inner join B on A.id = B.id
Where A.id = 5
mysql是首先执行连接还是在哪里执行?
编辑:
因为如果例如A包含1000行,那么在where条件之后,它将只包含1行。在1行表上执行联接要有效得多,因此似乎首先执行where,然后才执行联接更有效。
在mysql中,如果满足3项条件,我尝试打印“-1”。
SELECT '-1'
WHERE not exists(select * from acq_staff where acq_person_id = staffID)
OR not exists(select * from acq_training_course_session where training_course_id = course_id)
OR exists(select * from acq_training_enrolment where acq_staff_acq_person_id
SELECT * FROM left_table OUTER JOIN right_table on left_table.name = righ
t_table.name;
SELECT * FROM left_table FULL OUTER JOIN right_table on left_table.name =
right_table.name;
这两个语句给出了下面的错误。它们不是有效的mysql语句吗?
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresp
您好,我有一个带有多个条件的mysql查询要检查,所以我使用()来分隔每个条件,例如:
WHERE (a='string' AND b='string') OR (a='otherstring' AND b='otherstring)
我遇到的问题是,我必须添加一个用户检查,例如,我不知道是否必须再次使用(),这是正确的吗?
WHERE ((a='string' AND b='string') OR (a='otherstring' AND b='otherstring)) AND
当且仅当存在具有相应列"id“的行时,我如何更新MySQL表中的列?
我的表格示例:
id | name
---------
1 | NULL
2 | NULL
我的数据示例(CSV):
1, Peter
2, Martin
3, Bob
我要彼得和马丁坐在桌子上。但我希望鲍勃被忽视。我提出的查询如下所示:
"UPDATE table SET name = %s WHERE id = %s"
但在执行以下操作时会发生什么:
"UPDATE table SET name = 3 WHERE id = Bob"
我有两个表,每个表有几千行,我需要基于两个日期时间之间的日期时间来连接它们。
select SQL_NO_CACHE * from A
left outer join R on R.ActivityDate > A.StartDate and R.ActivityDate < A.EndDate;
目前查询速度相当慢。我尝试添加索引,但根据explain的输出,它们没有被使用。对于这样的查询,合适的索引策略是什么?使用between而不是<>似乎没有什么不同。
如果执行直接连接,查询速度将提高13倍(返回的行数减少7%),但从逻辑上讲,我需要返回不匹配的行。在额外的行
我注意到在查询结束时添加LIMIT 1并不会减少执行时间。我有几千条记录和一个简单的查询。如何让MySQL在第一场比赛后停下来?
例如,这两个查询都需要大约半秒钟的时间:
SELECT id,content FROM links WHERE LENGTH(content)<500 ORDER BY likes
SELECT id,content FROM links WHERE LENGTH(content)<500 ORDER BY likes LIMIT 1
编辑:,下面是解释结果:
id | select_type | table | type possible_keys
从MYSQL 5.1.73cll到MYSQL 10.1.19-MariaDB (现在运行在PHP7中),这个查询从返回良好结果到不返回任何结果。
SELECT t.eventid, t.tname, t.tdate, t.tyear, a.aname, t.ttour FROM
gs_tournaments as t LEFT JOIN gs_active as a ON a.eventid = t.eventid LEFT
JOIN gs_stats as s ON s.tid = t.tid WHERE s.pid = 34062 && a.active = '