search
HomeBackend DevelopmentPHP Tutorial请问php大师-phpnewnew

请教php大师---phpnewnew
我有2张数据表

a表
有 字段title

b表
也有字段title


a表中有1000条数据,b表中有10条数据

要求:

查询a表的title,若a.title 在 b.title中,则a.title存入 $array1中,如果sizeof($array1)>5 ,则不存。

若 若a.title 不在 b.title中,则 则a.title存入 $array2中,如果sizeof($array2)>5 ,则不存。

我的做法

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$sql="select title from a"........while($tpl2result=mysql_fetch_array($result_sql))          {              if(sizeof($array1)guolv($tpl2result['title']))                 array_push($array1,$tpl2result);                        }             if(sizeof($array2)guolv($tpl2result['title']))                 array_push($array2,$tpl2result);             }             if(sizeof($newtalk)==5&&sizeof($newvote)==5)             {                 break;                     exit;             }          }


questions:

 这种做法极大地浪费了资源,减慢速度,向大师取经。。


------解决方案--------------------
可以google一下sql语句的 join 操作
select * from a left join b on a.title = b.title
select * from a right join b on a.title = b.title

这样就不需要sql语句来对比两张表了

在数据库中,join的效率是很高的
------解决方案--------------------
就是嘛。你只要a.title表, LEFT JOIN 一次就够了,为NULL的就是不在b表咯。
长度sql len
或php判断下咯。
------解决方案--------------------
select title from a left join b on a.title=b.title limit 0,10
貌似这样是限制在10条内了
------解决方案--------------------
刚睡醒,大师就别叫了,这个就不扯了,你心知肚明,我也知道.

代码没有经过实战,仅仅做为思路,表必须做好索引,不过用title做索引我没有做过测试,我的Mysql 比php掌握得还少.

PHP code
$array1 = array();$SQL = "SELECT a.title As atitle FROM a WHERE a.title in(SELECT b.title FROM b)";$mysql->query($SQL);$total = 0;while ($result = $mysql->fetch_assoc()) {    $array[] = $result['atitle'];    if ($total > 5) {        break;    }    $total++;}$array2 = array();$SQL = "SELECT a.title As atitle FROM a WHERE a.title not in(SELECT b.title FROM b)";$total = 0;while ($result = $mysql->fetch_assoc()) {    $array2[] = $result['atitle'];    if ($total > 5) {        break;    }    $total++;}<br><font color="#e78608">------解决方案--------------------</font><br><br>
探讨

人家又没问你们,干嘛多嘴呀?
何况还答错了

------解决方案--------------------
你就b LEFT JOIN a 就好了。以b为主。

探讨

引用:

select title from a left join b on a.title=b.title limit 0,10
貌似这样是限制在10条内了


如果前面995条都不在b里面,,从996---1000在b里面,,似乎不行了吧,,

碰到这种需求貌似没有妥善的解决方法,,只能按1楼的搞了,效率比我那个高
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
使用golang进行Select Channels Go并发式编程的异步处理方法使用golang进行Select Channels Go并发式编程的异步处理方法Sep 28, 2023 pm 05:27 PM

使用golang进行SelectChannelsGo并发式编程的异步处理方法引言:并发式编程是现代软件开发中的一个重要领域,它可以有效地提高应用程序的性能和响应能力。在Go语言中,使用Channels和Select语句可以简单而高效地实现并发编程。本文将介绍如何使用golang进行SelectChannelsGo并发式编程的异步处理方法,并提供具体的

jquery如何隐藏select元素jquery如何隐藏select元素Aug 15, 2023 pm 01:56 PM

jquery隐藏select元素的方法:1、hide()方法,在HTML页面中引入jQuery库,可以使用不同选择器来隐藏select元素,ID选择器将selectId替换为你实际使用的select元素的ID;2、css()方法,使用ID选择器选择需要隐藏的select元素,使用css()方法将display属性设置为none,并将selectId替换为select元素的ID。

使用C#中的Array.Sort函数对数组进行排序使用C#中的Array.Sort函数对数组进行排序Nov 18, 2023 am 10:37 AM

标题:C#中使用Array.Sort函数对数组进行排序的示例正文:在C#中,数组是一种常用的数据结构,经常需要对数组进行排序操作。C#提供了Array类,其中有Sort方法可以方便地对数组进行排序。本文将演示如何使用C#中的Array.Sort函数对数组进行排序,并提供具体的代码示例。首先,我们需要了解一下Array.Sort函数的基本用法。Array.So

title是什么意思title是什么意思Aug 04, 2023 am 11:18 AM

title是定义网页标题的意思,位于标签内,并且是在浏览器的标题栏中显示的文本,title对于网页的搜索引擎优化和用户体验都非常重要。在编写HTML网页时,应该注意使用相关的关键词和吸引人的描述来定义title元素,以便吸引更多的用户点击和浏览。

linux要用select的原因是什么linux要用select的原因是什么May 19, 2023 pm 03:07 PM

因为select可以使开发者在同时等待多个文件缓冲区,可减少IO等待的时间,能够提高进程的IO效率。select()函数是IO多路复用的函数,允许程序监视多个文件描述符,等待所监视的一个或者多个文件描述符变为“准备好”的状态;所谓的”准备好“状态是指:文件描述符不再是阻塞状态,可以用于某类IO操作了,包括可读,可写,发生异常三种。select是一个计算机函数,位于头文件#include。该函数用于监视文件描述符的变化情况——读写或是异常。1.select函数介绍select函数是IO多路复用的函

简单明了的PHP array_merge_recursive()函数使用方法简单明了的PHP array_merge_recursive()函数使用方法Jun 27, 2023 pm 01:48 PM

在进行PHP编程时,我们常常需要对数组进行合并。PHP提供了array_merge()函数来完成数组合并的工作,不过当数组中存在相同的键时,该函数会覆盖原有的值。为了解决这个问题,PHP在语言中还提供了一个array_merge_recursive()函数,该函数可以合并数组并保留相同键的值,使得程序的设计变得更加灵活。array_merge

如何使用PHP中的array_combine函数将两个数组拼成关联数组如何使用PHP中的array_combine函数将两个数组拼成关联数组Jun 26, 2023 pm 01:41 PM

在PHP中,有许多强大的数组函数可以使数组的操作更加方便和快捷。当我们需要将两个数组拼成一个关联数组时,可以使用PHP的array_combine函数来实现这一操作。这个函数实际上是用来将一个数组的键作为另一个数组的值,合并成一个新的关联数组。接下来,我们将会讲解如何使用PHP中的array_combine函数将两个数组拼成关联数组。了解array_comb

HTML中title的含义是什么HTML中title的含义是什么Mar 06, 2024 am 09:53 AM

HTML中的title显示的是网页标题标签,可以让浏览者知道当前页面的主要是讲什么的,所以每个网页都应该有一个单独的title。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software