这是我输入的代码......
mysql_query("INSERT INTO test (string) VALUES ('tes><ssst')");
Run Code Online (Sandbox Code Playgroud)
这就是我查询结果的方式:
$result = mysql_query("SELECT * FROM test");
while($row = mysql_fetch_array($result))
{
echo $row['id'] . " ---- " . $row['string'];
echo "<br />";
}
Run Code Online (Sandbox Code Playgroud)
但我只得到这个结果:
3 ---- tes>
我想念缺少的部分:" <ssst",但是当我进入数据库时,我可以检索我插入的字符串.发生了什么?谢谢.
我试图使用这样的查询从表中选择行
SELECT pminf_member, pminf_schmem
, pminf_date, pminf_fund
, pminf_cont, pminf_rate
, pminf_matrix
FROM pe_minvf
WHERE (pminf_member = 4380)
AND (pminf_schmem = 'M')
AND (pminf_date <= '03/30/2011')
AND (pminf_date =
(SELECT MAX(pminf_date) AS Expr1
FROM pe_minvf AS pe_minvf_1
WHERE (pminf_member = 4380)
)
)
AND (pminf_fund = 'LIFESTYLE')
Run Code Online (Sandbox Code Playgroud)
我应该从子查询(我认为)得到的是'01/01/2011'的日期,但是当我运行我的查询时,我得不到任何结果.
如果我用硬编码日期替换子查询,我会返回正确的行.例如
SELECT pminf_member, pminf_schmem
, pminf_date, pminf_fund
, pminf_cont, pminf_rate
, pminf_matrix
FROM pe_minvf
WHERE (pminf_member = 4380)
AND (pminf_schmem = 'M')
AND (pminf_date <= '03/30/2011')
AND (pminf_date = '01/01/2011')
AND (pminf_fund …Run Code Online (Sandbox Code Playgroud) 我有一个查询,我需要从两个不同的日期和时间提取信息.
我想拉昨天和今天之间以及从昨天到今天13:00:00之间的最后修改时间18:00:00之间的所有日期.
我怎么能做到这一点?
SELECT A1.CHCASN,
A1.CHTRKN,
SUM(A2.CDPAKU) AS UNITS,
A1.CHACWT,
SUM(A2.CDPRC * A2.CDPAKU) AS COST,
SUM(A3.STRPRC * A2.CDPAKU) AS RETAIL,
A1.CHDLM,
A1.CHTLM
FROM CHCART00 A1,
CDCART00 A2,
STSTYL00 A3
WHERE A1.CHCASN = A2.CDCASN
AND A2.CDSTYL = A3.STSTYL
AND A2.CDCOLR = A3.STCOLR
AND A2.CDSDIM = A3.STSDIM
AND A1.CHSTAT = '25'
AND A1.CHROUT = 'UPSCA'
AND A1.CHDLM BETWEEN 20110505 And 20110506
AND A1.CHTLM >= '160000'
AND A1.CHTLM <= '130000'
GROUP BY A1.CHCASN, A1.CHTRKN, A1.CHACWT, A1.CHDLM, A1.CHTLM
ORDER BY A1.CHCASN
Run Code Online (Sandbox Code Playgroud) 我正在向用户表(来自许多站点的许多用户)输入数据:
myisam default collation latin1_swedish....
将该数据导入到 innodb table utf8_general
我已经在username,site_id组合上放置了一个唯一的密钥,但这对于同一站点的2个用户来说是失败的:
user 1 dranfog,
user 2 drånfog
Run Code Online (Sandbox Code Playgroud)
如果我跑:
SELECT IF('å' = 'a', 'yep', 'nope');
Run Code Online (Sandbox Code Playgroud)
直接在目标数据库上使用utf8编码,我得到'yep'.
任何解决此问题的提示都非常受欢迎.我的印象是utf8会将这些视为不同的字符,但似乎并非如此.
假设它是一个销售照相机的网站.这是我的实体(表格):
Camera: A simple camera
Feature: A feature like: 6mp, max resolution 1024x768,
Run Code Online (Sandbox Code Playgroud)
事情是相机和功能之间我有多对多的关系,所以我有一个额外的表:
camera -> cameras_features -> feature
Run Code Online (Sandbox Code Playgroud)
所以,查询很简单:
如何获得具有1,2和3功能的所有相机?
这就像构建位图索引一样.
您可以用来测试解决方案是否正常的数据
C1 has features 1,2,3
C2 has features 1,2,4
C3 has features 1,2
Run Code Online (Sandbox Code Playgroud)
以下是查询和预期结果:
这是我做的(它的工作原理,但它真的很难看,不想使用它):
SELECT * FROM camera c
WHERE c.id IN (
(SELECT c.id FROM camera c JOIN cameras_features f ON (c.id=f.camera_id)
WHERE f.feature_id=1)
q1 JOIN -- simple intersect
(SELECT c.id FROM camera c JOIN cameras_features …Run Code Online (Sandbox Code Playgroud) 我有本地表和字符串,必须从其值填充:
DECLARE @#SomeTable TABLE ( some columns ..)
DECLARE @SomeString varchar(8000) = 'init string'
Run Code Online (Sandbox Code Playgroud)
迭代它
WHILE EXISTS(SELECT * FROM @#SomeTable)
BEGIN
// [somecolumn] is declared temp variable
SELECT TOP 1 @somecolumn = somecolumn FROM @#SomeTable
PRINT 'before ' + @SomeString // 'init string'
PRINT [some values from SomeTable] // this OK
SET @SomeString += [some values from SomeTable]
PRINT 'after ' + @SomeString //'init string' UPDATE NOT TAKE PLACE!!!!
DELETE @#SomeTable Where somecolumn = @somecolumn
END
Run Code Online (Sandbox Code Playgroud)
我发现连接失败了.为什么?
编辑:
这是一段原始代码:
/*Represents …Run Code Online (Sandbox Code Playgroud) 我有这个问题:
select sum(QTYINSTOCK * AVGPRICE) as Albums
from inventoryinfo
WHERE Category = 'Albums'
Run Code Online (Sandbox Code Playgroud)
它返回:
Albums
$660.80
Run Code Online (Sandbox Code Playgroud)
有没有办法在一个查询中运行多个查询并在单个表中返回?例如:
select sum(QTYINSTOCK * AVGPRICE) as Albums from inventoryinfo
WHERE Category = 'Albums'
select sum(QTYINSTOCK * AVGPRICE) as Prints from inventoryinfo
WHERE Category = 'Prints'
select sum(QTYINSTOCK * AVGPRICE) as Frames from inventoryinfo
WHERE Category = 'Frames'
Albums | $660.80
Prints | $123.00
Frames | $67.00
Run Code Online (Sandbox Code Playgroud)
======看起来像是一致意见是使用联合结果并没有像我想的那样格式化,它返回
Albums
660.80
123.00
67.00
Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server 2012数据库.我调用的表REFERENCE有一个名为的列LOCATOR.
我的用户正在输入数据,但有时他们会输入两个不同的行LOCATOR.有没有办法让我创建一个错误,只有当LOCATOR它不为空时才出现?
你们可以查看以下对Oracle DB的查询并指出错误:
SELECT t1.name FROM t1, t2 WHERE t1.id = t2.id AND t2.empno IN (1, 2, 3, …, 200)
Run Code Online (Sandbox Code Playgroud)
查询统计:
指数:
t2.empno 被编入索引.
t1.id 被编入索引.
t2.id 被编入索引.
更新
上面的查询只是我使用的查询的示例副本.下面是一个更真实的形式
解释计划

查询:
SELECT
PRODUCT_REPRESENTATION_SK
FROM
Product_Representation pr
, Design_Object do
, Files files
,EPS_STATUS epsStatus
,EPS_ERROR_CODES epsError
,VIEW_TYPE viewTable
WHERE
pr.DESIGN_OBJECT_SK = do.DESIGN_OBJECT_SK
AND pr.LAYER_NAME !='Layer 0'
AND epsStatus.EPS_STATUS_SK = pr.EPS_STATUS
AND epsError.EPS_ERROR_CODE = pr.EPS_ERROR_CODE
AND viewTable.VIEW_TYPE_ID = pr.VIEW_TYPE_ID
AND files.pim_id = do.PIM_ID
AND do.DESIGN_OBJECT_ID IN
(
147086,149924,140458,135068,145197,134774,141837,138568,141731,138772,143769,141739,149113,148809,141072,141732,143974,147076,143972,141078,141925,134643,139701,141729,147078,139120,137097,147072,138261,149700,149701,139127,147070,149702,136766,146829,135762,140155,148459,138061,138762............................................. 200 such …Run Code Online (Sandbox Code Playgroud) 我要求获取扩展到候选人的所有工作机会以及候选人最终被雇用的工作机会.我创建了两个单独的查询,一个用于捕获所有要约,另一个用于捕获每个候选人最终被雇用的作业的子查询.当我将两个查询组合在一起时出现问题我得到了ORA-00913:值太多了.有什么建议?
SELECT DISTINCT h.pi_candidate_num,
h.parent_pi_number,
h.associate_name,
j.job_family_name,
j.organization_name,
j.title,
e.contest_number,
e.pi_his_itm_app_trk_creation_dt offer_date
FROM wc_hired_interns_fa h
INNER JOIN wc_application_event_f e
ON h.pi_candidate_num = e.pi_candidate_num
INNER JOIN wc_job_information_d j
ON e.job_info_row_wid = j.row_wid
WHERE e.pi_his_itm_app_trk_creation_dt IN
(SELECT DISTINCT e.pi_his_itm_app_trk_creation_dt
FROM wc_application_event_f e
INNER JOIN wc_hired_interns_fa h
ON h.pi_candidate_num = e.pi_candidate_num
INNER JOIN wc_job_information_d j
ON e.job_info_row_wid = j.row_wid
WHERE j.job_family_name IN ('MDP', 'ELP', 'Emerging Leader Program', 'Other')
AND e.pi_his_itm_app_trk_sts_name = 'Extended'
AND e.pi_his_itm_app_trk_step_name = 'Offer'
AND j.title NOT IN ('Student Ambassador Program …Run Code Online (Sandbox Code Playgroud) sql ×6
mysql ×3
sql-server ×3
oracle ×2
t-sql ×2
collation ×1
db2 ×1
db2-400 ×1
html ×1
oracle11g ×1
php ×1
sql-tuning ×1
subquery ×1
temp-tables ×1
unicode ×1
unique-index ×1
utf-8 ×1