标签: conditional

基于MySQL中其他列的查询条件列

我很确定我已经在某个地方见过这个,但我找不到合适的术语,所以我遇到了麻烦......

假设我有一个包含用户信息的表(让我们假设它是由比我更多付费的人创建的,因此修改模式不是一种选择.)用户信息的各个列中有DOB和职称的列.我想要一个查询,根据这些列中的内容,将包含一个名为"Real_Title"的额外列,例如:

User_id    Job_Title    DOB
  joe_1      manager    01/01/1950
  jim_1    associate    01/01/1970
 jill_1    associate    01/01/1985
 jane_1      manager    01/01/1975
Run Code Online (Sandbox Code Playgroud)

查询:

SELECT User_id, Real_Title FROM users
IF (YEAR(DOB) < 1980 AND Job_Title = "manager")
   {Real_Title = "Old Fart"}
ELSE IF (YEAR(DOB) < 1980 AND Job_Title = "associate")
   {Real_Title = "Old Timer"}
ELSE IF (YEAR(DOB) > 1980 AND Job_Title = "manager")
   {Real_Title = "Eager Beaver"}
ELSE IF (YEAR(DOB) > 1980 AND Job_Title = "associate")
   {Real_Title = "Slacker"}
Run Code Online (Sandbox Code Playgroud)

我知道上面的内容不仅错误,而且编码效率也非常低,但我想把这个想法贯穿其中.

有没有一种方法,不使用连接,根据同一个表中一个或多个其他列中的信息填充列?

目前我在获取结果后在PHP脚本中使用了一些东西来将这些结果引导到我想要的组中,但如果可以在查询中完成,那么将查询移植到其他脚本和语言会更容易.

谢谢!

mysql database syntax conditional

12
推荐指数
2
解决办法
1万
查看次数

在Django管理员中使条件成为有条件的

我有一个模型,我希望工作人员能够编辑事件的日期.像这样:

class ThingAdmin(admin.ModelAdmin):
    model = Thing

    if obj.date < today: #Something like that
        inlines = [MyInline,]
Run Code Online (Sandbox Code Playgroud)

问题是,我没有访问此级别的obj实例.我已经尝试重写get_formset(),但没有得到任何结果.

请指教?

django conditional django-admin inlines

12
推荐指数
3
解决办法
8131
查看次数

一个查询中的MySQL更新条件(UPDATE,SET&CASE)

我试图在可能的情况下在单个查询中更新一组记录(boolean字段).

输入来自分页无线电控件,因此给定POST的页面的ID 值为a truefalsevalue.

我试图朝这个方向前进:

UPDATE my_table
    SET field = CASE
        WHEN id IN (/* true ids */) THEN TRUE
        WHEN id IN (/* false ids */) THEN FALSE
    END
Run Code Online (Sandbox Code Playgroud)

但是这导致"true id"行被更新为true,并且所有其他行都被更新为false.

我假设我已经做了一些严重的语法错误,或者说我正在接近这个错误.

有关解决方案的任何想法?

mysql conditional case

12
推荐指数
2
解决办法
3万
查看次数

是否可以在模型中创建条件关联?

我已经设置了一个基于角色的访问控制系统,其中包含以下模型:

  • 角色(作为STI),
    • UserRole(全局角色)
    • ProjectRole(项目特定角色)
  • 赋值(具有不同资源的多态)
  • 用户
  • 项目(作为分配的一种资源类型)

如果用户具有特定的UserRole,则只允许用户负责该项目.此Userrole名称为"负责项目",ID为2.

在用户模型中,有两个has_many关联:responsible_assignments和responsible_projects.仅当用户具有ID为2的UserRole"负责项目"时,此关联才有效.

是否可以在用户模型中为responsible_*关联创建条件关联,这是设置此类关系的常用方法吗?

解决这类问题的最佳做法是什么?

class Role < ActiveRecord::Base
  has_many :assignments
  has_many :users, :through => :assignments

class UserRole < Role

class ProjectRole < Role

class Assignment < ActiveRecord::Base
  belongs_to :user
  belongs_to :role
  belongs_to :resource, :polymorphic => true

class User < ActiveRecord::Base
  has_many :assignments
  has_many :roles, :through => :assignments, 
                   :class_name => "UserRole"
  has_many :responsible_assignments, :class_name => "Assignment",
                                     :conditions => { :role_id => 4 }     // specific project role
  has_many :responsible_projects, :through => :responsible_assignments, 
                                 :source => …
Run Code Online (Sandbox Code Playgroud)

conditional ruby-on-rails has-many single-table-inheritance polymorphic-associations

12
推荐指数
3
解决办法
1万
查看次数

verilog模块的条件实例化

是否可以在verliog中有条件地实例化模块?

例如:

if (en==1)  
  then module1 instantiation  
else  
  module2 instantiation  
Run Code Online (Sandbox Code Playgroud)

conditional verilog instantiation hdl

12
推荐指数
3
解决办法
4万
查看次数

如何使用函数的返回值作为在python中返回元组的条件

我一直在寻找这样的东西,但我找不到它.

一些背景

我使用opencv从视频文件中检索帧.通常人们会在无限循环中这样做:

while (True):
    s, img = cv.read()
Run Code Online (Sandbox Code Playgroud)

要么

for i in xrange(10000): #just a big number
    s, img = cv.read()
Run Code Online (Sandbox Code Playgroud)

现在我想要检索所有帧并在没有更多帧时退出循环.但是我在python中的技能不够强,无法做我想做的事情.

我想知道什么

read函数(或方法,我不知道它们是如何在python中调用的)返回一个元组:第一个表示操作成功,第二个表示返回的帧.我想在元组的第一个元素为false时打破while循环.有C背景,我想也许这会起作用:

while ((success, img = capture.read())[0]):
    #do sth with img
Run Code Online (Sandbox Code Playgroud)

我认为这会在成功失败时打破循环.但事实并非如此.然后我想也许这会奏效:

while ((success, img = capture.read()).success):
    #do sth with img
Run Code Online (Sandbox Code Playgroud)

它也没用.我不想做类似的事情

while(True):
    s, i = capture.read()
    if (s == False):
        break
Run Code Online (Sandbox Code Playgroud)

如何测试条件while,而不是if成功中断?

python conditional opencv while-loop python-2.7

12
推荐指数
3
解决办法
2167
查看次数

一旦满足条件,如何打破foreach?

我有一种情况,当处理对象时,我通常使用foreach循环遍历它,如下所示:

foreach ($main_object as $key=>$small_object) {
...

}
Run Code Online (Sandbox Code Playgroud)

但是,我需要在这里添加一个条件:

foreach ($main_object as $key=>$small_object) {
   if ($small_object->NAME == "whatever") {
      // We found what we need, now see if he right time.
      if ($small_object->TIME == $sought_time) {
          // We have what we need, but how can we exit this foreach loop?
      }
}
Run Code Online (Sandbox Code Playgroud)

这样做的优雅方式是什么?如果发现匹配,让它继续循环似乎很浪费.或者还有另一种做法更好吗?可能使用for而不是foreach?

php foreach conditional loops

12
推荐指数
2
解决办法
4万
查看次数

有没有办法在android studio中进行条件调试

有没有办法在android studio中有条件调试?例如,我想在特定变量值时进入调试模式.例如:

for(MyClass myclass: ClassList){
String title = myclass.gettitle(); // this is where break point is
}
Run Code Online (Sandbox Code Playgroud)

在此之前,我不需要调试模式.我只想检查该确切值的应用程序.例如,title="KickBoxing"在这种情况下,我应检查变量值,如果它不是我要求的值,我应按F9转到下一个值.也许这需要50倍才能达到我想要的值.

debugging conditional android

12
推荐指数
2
解决办法
3507
查看次数

MYSQL如果一个select查询返回0行然后另一个select查询?

如果select * from table where x=1返回0行,那么我需要select * from table where x=2 [or some other query].是否可以在带有条件语句的单个MySQL查询中执行此操作?

编辑: 所有答案都UNION有效,但前提是两个查询都选择同一个表(或具有相同列数的表).如果第二个查询应用于具有连接的其他表,该怎么办?

让我写下我的疑问,使问题更清楚:

第一名:

SELECT  table1.a, table2.b  from table1 LEFT JOIN table2 ON table2.x= table1.x
WHERE ..... 
Run Code Online (Sandbox Code Playgroud)

如果第一个结果为null,则:

第二:

SELECT table1.a FROM table1 
WHERE ....
Run Code Online (Sandbox Code Playgroud)

如果返回任何行,我将使用第一个查询中的行,否则将使用第二个行.

mysql select conditional if-statement

11
推荐指数
1
解决办法
1万
查看次数

如何缩短多重&&条件

目前我可以运行我的程序,但我的代码包含很多重复,看起来像:

while(option != 'E' && option != 'D' && option != 'P' && option != 'Q' &&
      option != 'e' && option != 'd' && option != 'p' && option != 'q') {
  // Some code here
}
Run Code Online (Sandbox Code Playgroud)

要么:

while(cType != 'S' && cType != 'L' && cType != 'O' && cType != 'Q' &&
      cType != 's' && cType != 'l' && cType != 'o' && cType != 'q') {
  // Some code here
}
Run Code Online (Sandbox Code Playgroud)

缩短上述代码的最快方法是什么?

(除了使用附加功能有什么办法吗?)

c c++ algorithm optimization conditional

11
推荐指数
1
解决办法
359
查看次数