在MySQL中,我试图选择与提供的数据的至少2个字段匹配的任何行
例如.我已获得firstName,lastName,dob,网站,电子邮件,我想要任何与firstName和lastName,firstName和email,或网站和电子邮件等匹配的行.
我知道我可以写一个非常长的啰嗦声明(这=这个=这个=这个)OR(这=这个等等但是这个查询可能会变得非常大,特别是如果我们决定我们想匹配超过5领域.
我们还需要对匹配的行进行排名,因此如果某些行匹配3而不是仅匹配最少2个字段,那么它们应该在返回的结果中显示更高的值.
我之后可以用PHP处理它,或者做多个SQL查询,我只是想知道是否有人知道更简单/更清晰的方法来匹配这些数据?
我感谢任何帮助!乔
我是Symfony2的新手,我已经按照Symfony2网站上的指南使用composer安装了MongoDb Doctrine包(这也是我安装Symfony2的方法)
http://symfony.com/doc/master/bundles/DoctrineMongoDBBundle/index.html
我将这些行添加到app/autoload.php中:
use Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver;
AnnotationDriver::registerAnnotationClasses();
Run Code Online (Sandbox Code Playgroud)
和app/AppKernal.php
new Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle(),
Run Code Online (Sandbox Code Playgroud)
在指南中提出,但当我尝试加载Symfony应用程序(这只是演示应用程序)时,我收到以下错误:
InvalidArgumentException: The service definition "doctrine_mongodb.odm.document_manager" does not exist.
Run Code Online (Sandbox Code Playgroud)
[还有更多的痕迹,让我知道这是否有用]
如果我注释掉我添加到app/AppKernal.php的行,那么Symfony Demo应用程序加载没有问题.
我运行了app/check.php,我注意到以下警告:
WARNING When using annotations you should have at least PHP 5.3.8 due to PHP bug #55156
Install PHP 5.3.8 or newer if your project uses annotations.
Run Code Online (Sandbox Code Playgroud)
我目前正在使用Ubuntu(5.3.5-1ubuntu7.11)附带的PHP版本,它看起来像上面的composer/mongodb位使用Annotations.
当我进行谷歌搜索时,我找不到任何明显的东西,并认为如果我的PHP版本确实存在问题,这将更常见.
据我所知,我需要:
有没有人有任何建议或其他解决方案更容易?如果可以的话,我真的很想坚持作曲家.