我对此完全是个菜鸟。基本上我正在尝试降低查询数量以缩短执行时间(获得100,000个查询,并且运行脚本需要永久)
让我说我有这样的事情:
UPDATE shop_tshirts SET categorie=XXXX WHERE design=12345
要查找XXXX
的值,我必须这样做:
SELECT categorie FROM shop_designs WHERE design=12345
如何只使用一个查询才能做到这一点?目前我必须进行2次查询,因此进行此更改会使页面加载速度提高2倍。
答案 0 :(得分:0)
UPDATE shop_tshirts SET categorie = d.categorie
FROM shop_designs d
WHERE design = 12345
AND d.design = 12345
这对你有用。 这假设“design”是一个不同的键(当你搜索WHERE design = 12345时只返回一行)
答案 1 :(得分:0)
不要在表shop_tshirts上设置类别 - 实际上完全删除了这个字段。
然后当你需要shop_tshirts表中的类别字段时,请加入shop_tshirts和类别表来获取它
e.g。
SELECT * FROM
shop_tshirts
JOIN
categorie ON categorie.design=shop_tshirts.design
WHERE
design=12345
答案 2 :(得分:0)
马上把他们全部清理干净!
UPDATE shop_tshirts t
JOIN shop_designs d
ON d.design = t.design
SET t.categorie = d.categorie
答案 3 :(得分:0)
UPDATE shop_tshirts SET categorie=XXXX WHERE design=(SELECT categorie FROM shop_designs WHERE design=12345)
或:
UPDATE shop_tshirts AS t1
LEFT JOIN shop_designs AS t2 ON t2.design=t1.design
SET t1.categorie=t2.categorie
WHERE t1.design=12345
但我不认为你的问题是在查询当然直到我能看到你的数据库和你的脚本我不能告诉但是尝试在两个表中为列设计添加索引
答案 4 :(得分:0)
根据在另一个表中找到的数据更新条目
public class ViewPagerAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 10;
// Tab Titles
private String[] tabs = { "Tables", "Water", "Fan"};
Context context;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
// Top Rated fragment activity
return new TableFragment();
case 1:
// Games fragment activity
return new WaterFragment();
case 2:
// Movies fragment activity
return new FancoolerFragment();
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
return tabs[position];
}
@Override
public CharSequence getPageTitle(int position) {
return tabs[position];
}