我希望确保 php web 应用程序中的所有查询都正确使用了绑定变量,以尽量减少对查询的解析。
我想知道 Oracle 如何解析将列与值列表进行比较的查询。Oracle 会认为这些语句是相同的,还是列表必须在绑定变量内?
select char from alphabet where char not in ('a', 'b');
select char from alphabet where char not in ('c', 'd');
Run Code Online (Sandbox Code Playgroud)
如果列表的内容必须在绑定变量中,是否可以使用单个变量来完成,或者必须将列表中的每个项目放在一个单独的变量中?
select char from alphabet where char not in (:list);
select char from alphabet where char not in (:c1, :c2);
Run Code Online (Sandbox Code Playgroud)
如果后者为真,列表中具有不同项数的查询是否仍被认为具有相同的结构?
select char from alphabet where char not in (:c1, :c2);
select char from alphabet where char not in (:c1, :c2, :c3);
Run Code Online (Sandbox Code Playgroud) 我有一个非常大的日志表,我想从中复制行,将它们放入新服务器上的相同表结构中。我不想复制所有内容,只复制旧行,以便主服务器上的表保持较小。所以我必须选择我想要的数据并且只移动(和删除)它。
请记住,有很多数据,mysqldump如果不需要,我不想用 a 复制所有数据,尤其是在复制表时它会锁定表。
我想出的最好的是一个 PHP 脚本,我将其作为暂定答案发布,尽管我确定它不是最佳选择。
除了性能和安全性之外,MySQL 和 Postgres 之间真的有什么区别吗,比如 SQL 查询、内置函数、过程等等?
我问这个是因为我熟悉 PHP 和 MySQL (phpMyAdmin) 但不熟悉 Postgres (phpPgAdmin)
因此,我从 PHPMyAdmin 导出了一个 MySQL 数据库(我从 Windows 8 计算机上的 IIS Express 中访问该数据库),并且尝试将此数据库导入到另一台计算机上,但是在那台计算机上我收到以下错误:
请帮忙。我需要能够恢复这个数据库,但我不知道如何解决这个问题。
我尝试进入 sql 文件并更改 sql 文件中的外键行(它设置为 0),但这没有什么区别。哪里设置为ON?我无法弄清楚这一点。
我想用 [space] (Ascii 32) 作为其中的一部分在 mysql DB 中搜索文本。但我没有得到正确的结果。
我的 MySql 查询是:
SELECT count(id) as total
, MIN(product_price) as min_price
, MAX(product_price) as max_price
FROM `products_details`
WHERE subcat_id = 1026
AND MATCH(alternate_name, product_desc, keywords)
AGAINST ('+moto +g +plus +(>mobile <mobiles)'; IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
AGAINST ('+moto +g +plus +(>mobile <mobiles)'
我想moto g plus使用上面的查询搜索字符串移动。我想在g. 例如,moto "SPACE"g"SPACE"。
我尝试了以下 2 个解决方案,但它不起作用。
[[:空间:]]
AGAINST ('+moto +[[:space:]]g[[:space:]] +plus +(>mobile <mobiles)'
和
AGAINST ('+moto +\\ g\\ +plus +(>mobile <mobiles)'==> 我在此查询中的 …
在开始之前,我不是专业的 Web 开发人员。我是使用 google 和StackOverflow自学的。
所以我最近将我的网站从共享主机转移到了 VPS。
我的提供商将我的网站/文件移至我的新主机。两者都运行 cPanel。
我有一个脚本,它在我的旧主机上运行得非常好-
INSERT INTO `database`.`table`
(`UUID`, `UpdateDate`, `JoinDate`)
VALUES
('$uuid',NOW(),NOW())
ON DUPLICATE KEY UPDATE
`UpdateDate` = NOW()
Run Code Online (Sandbox Code Playgroud)
问题是它在我的新服务器上不再起作用。
我认为的问题是它没有更新或插入,因为没有更新该表中的所有列。
我创建了两个测试表,表 A 包含上面 UUID、UpdateDate、JoinDate 中的 3 列,第二个表 B 包含 UUID、用户名、UpdateDate、JoinDate 中的 4 列。
UUID 在两个表中都是唯一的和主要的。
知道为什么此查询不适用于表 B 吗?运行查询时是否必须插入/更新每个表列?这是我需要在主机上更改的 PHP 设置吗?
抱歉,如果我没有提供所有信息,这是我的第一个 DBSE 问题。
CREATE TABLE TestUserA`
( UUID varchar(40) NOT NULL,
UpdateDate datetime NOT NULL,
JoinDate datetime NOT NULL
) ENGINE=MyISAM DEFAULT …Run Code Online (Sandbox Code Playgroud) 我需要将特定值插入到我正在使用 SQL 处理的表中(请参阅下面的函数):
INSERT INTO *Table Name* (...) VALUES(...);
Run Code Online (Sandbox Code Playgroud)
将要存储在这个表中的值是涉及另一种编程语言的值,这些语言有很多奇怪的符号,包括单个反斜杠、*、美元符号等。
如何准确插入该表中的值?
例如,当我输入 '\2' 时,它需要在表中返回 \2 而不是 2。我无法手动输入两个反斜杠来获取 \2。这是因为我通过 HTML 接收来自另一个用户的输入并使用 PHP 将其发送到我的表。我遇到的问题是,这些 SQL 中的特殊字符正在被输入,这不是我希望它们作为值的方式。
有没有办法用预先调用的某个字符串函数准确地键入这些值?这样做的其他方法将不胜感激!
数据库的附加信息:
服务器:本地主机通过 UNIX 套接字
服务器类型:MySQL
服务器连接:未使用 SSL 文档
服务器版本:5.6.49-cll-lve - MySQL 社区服务器 (GPL)
潜在答案:$mysqli 是否定义如下?(我称之为 $db。)
$mysqli=mysqli_connect(...);
因此,该文字添加如下:
$query = "INSERT INTO Table (C1, ... Cn) VALUES('$C1', ... '$Cn')";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $C1, ..., $Cn);
$stmt->execute();
mysqli_query($db, $query);
Run Code Online (Sandbox Code Playgroud) 我在 MYSQL 中有这个uom表:
| ID | 乌姆 |
|---|---|
| 1 | 片 |
| 2 | 打 |
| 3 | 放 |
MYSQL 中的产品表:
| ID | 编号 | 标题 | 乌姆 |
|---|---|---|---|
| 1 | 19421 | 测试1 | 1:1:10.00,3:1:56.17 |
| 2 | 7878 | 测试2 | 1:1:24.33 |
| 3 | 123456 | 测试3 | 2:12:63.22,3:1:14.00 |
| 4 | 666565 | 测试4 | 1:1:10.00,2:12:20.00,3:1:30.00 |
该产品表是否需要标准化?有人说这个表没有多值字段/数据......这是正确的吗?简而言之,产品表包含产品的名称、标题和 uom列。Uom 列包含存储单位、数量包以及基于单位的价格。这意味着每种产品都有不同的单位和基于单位的价格。
例如,test4 产品具有三个单位 1:1:10.00, 2:12:20.00, 3:1:30.00。我们以第一个单元为例:1:1:10.00。
所以,1:1:10.00是一个单位。2:12:20.00并且3:1:30.00是不同的单位。所以,test4一共3个单元。
我已经到处搜索了,我似乎只找到了如何获取单个日期在两个“外部”日期之间的记录。
我想了解如何选择当前日期介于 startDate 字段中的值和 endDate 字段中的值之间的记录。
到目前为止我所拥有的(PHP):
$now = new DateTime();
$sql = "
SELECT content, image, imageHeight, imageWidth, link, linkDescription
FROM news
WHERE appearanceDate < $now
AND $now < termDate
ORDER BY appearanceDate DESC
";
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我需要删除所有三个表中 UserIndex = 1 和 ItemNumber = 5202 的记录,所有这些记录都在单个查询中。我正在使用 SQL 2008 R2。
表用户信息1
| 用户索引 | 项目编号 | 项目计数 |
|---|---|---|
| 1 | 5202 | 99 |
| 1 | 1600 | 50 |
| 2 | 155 | 2 |
| 3 | 125 | 60 |
表用户信息2
| 用户索引 | 项目编号 | 项目计数 |
|---|---|---|
| 8 | 1265 | 50 |
| 4 | 1899 | 41 |
| 1 | 5202 | 99 |
| 3 | 125 | 60 |
表用户信息3
| 用户索引 | 项目编号 | 项目计数 |
|---|---|---|
| 6 | 5205 | 85 |
| 1 | 6666 | 41 |
| 3 | 4455 | 44 |
| 1 | 5202 | 50 |
我尝试将此查询与两个表一起使用,但它不起作用:
DELETE ItemInfo1, ItemInfo2
FROM ItemInfo1
LEFT JOIN ItemInfo2
ON ItemInfo1.UserIndex = ItemInfo2.UserIndex
WHERE ItemInfo1.UserIndex = 1;
Run Code Online (Sandbox Code Playgroud) php ×10
mysql ×8
phpmyadmin ×4
delete ×1
import ×1
mysql-5.6 ×1
mysqldump ×1
oracle ×1
parse ×1
postgresql ×1
sql-server ×1
subquery ×1
xampp ×1