MySQL返回0行,其中行有&符号

时间:2015-06-22 10:24:52

标签: php mysql

使用PHP我尝试使用以下语法从MySQL获取记录

module parameters_base
  type, public :: t_parameters_base
    integer :: n
  end type t_parameters_base
end module parameters_base

module parameters_problem1
  use parameters_base
  implicit none

  type, extends(t_parameters_base), public :: t_parameters_problem1
    integer :: p1
  end type t_parameters_problem1
end module parameters_problem1

module parameters_problem2
  use parameters_base
  implicit none

  type, extends(t_parameters_base), public :: t_parameters_problem2
    integer :: p2
  end type t_parameters_problem2
end module parameters_problem2

module some_calc1
  use parameters_base
  implicit none
contains
  subroutine func_some_calc1(par)
    class(t_parameters_base) :: par
  end subroutine func_some_calc1
end module some_calc1

module some_calc2
  use parameters_base
  implicit none
contains
  subroutine func_some_calc2(par)
    class(t_parameters_base) :: par
  end subroutine func_some_calc2
end module some_calc2

module some_calc3_problem1
  use parameters_problem1
  implicit none
contains
  subroutine func_some_calc3_problem1(par)
    type(t_parameters_problem1) :: par
    print*, par%p1
  end subroutine func_some_calc3_problem1
end module some_calc3_problem1

module some_calc3_problem2
  use parameters_problem2
  implicit none
contains
  subroutine func_some_calc3_problem2(par)
    type(t_parameters_problem2) :: par
    print*, par%p2
  end subroutine func_some_calc3_problem2
end module some_calc3_problem2

module main_problem1
  use parameters_problem1
  use some_calc1
  use some_calc2
  use some_calc3_problem1
  implicit none
contains
  subroutine main_func_problem1(par)
    type(t_parameters_problem1) :: par

    call func_some_calc1(par)
    call func_some_calc2(par)
    call func_some_calc3_problem1(par)
  end subroutine main_func_problem1
end module main_problem1

module main_problem2
  use parameters_problem2
  use some_calc1
  use some_calc2
  use some_calc3_problem2
  implicit none
contains
  subroutine main_func_problem2(par)
    type(t_parameters_problem2) :: par

    call func_some_calc1(par)
    call func_some_calc2(par)
    call func_some_calc3_problem2(par)
  end subroutine main_func_problem2
end module main_problem2

program module_test
  use parameters_problem1
  use parameters_problem2
  use main_problem1
  use main_problem2

  implicit none

  type(t_parameters_problem1) :: par1
  type(t_parameters_problem2) :: par2

  par1%p1 = 1
  par2%p2 = 2

  call main_func_problem1(par1)
  call main_func_problem2(par2)
end program module_test

即使它存在于表中但仍然返回0行。 表有很多数据,我不能手动修改,行中有&运营商它没有返回任何记录。 请帮帮我。

select * from groups where groupname="Soya & Group";

2 个答案:

答案 0 :(得分:1)

评论太长了。

人们非常怀疑&符号是问题所在。但是,您可以使用compile project(':libname') 轻松测试它:

like

select * from groups where groupname like 'Soya _ Group'; 字符将匹配任何内容。

更有可能的是,数据库中的数据存在细微问题。看看其中一个是否会返回任何内容:

_

很多不同的事情可能正在发生。例如,您的默认排序规则可能区分大小写,值可能实际为where groupname like '%Soya _ Group%'; where groupname like '%Soya&Group%'; where lower(groupname) like '%soya%group%'; 。还有其他可能性。获得某些匹配后,您可以调查实际值以确定发生了什么。

答案 1 :(得分:0)

谢谢大家的支持。好吧,我使用以下查询将& 替换为MySQL表中的

UPDATE groups set groupname=REPLACE(groupname,'&','and');

此查询解决了我的问题。